Function at 0x41db90
Capabilities:
Authenticate hmac
Check http status code
Parse pe header

Disassembly:
push ebp
push ebx
push esi
push edi
add esp, 0xffffff9c
mov dword [esp + 4], 0
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x90]
mov ebp, dword [esp + 0x98]
mov ebx, dword [esp + 0x9c]
mov eax, dword [esp + 0x94]
dec eax
mov dword [esp + 0x2c], eax
cmp eax, ebx
jbe 0x41dbf4
cmp byte [esi + ebx], 0xd
jbe 0x41dbee
mov dword [esp + 0x4c], ebx
jmp 0x41dbde
mov ecx, dword [esp + 0x4c]
cmp byte [esi + ecx], 0xd
jbe 0x41dbf8
inc dword [esp + 0x4c]
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x4c], eax
jb 0x41dbd4
jmp 0x41dbf8
mov dword [esp + 0x4c], ebx
jmp 0x41dbf8
mov dword [esp + 0x4c], ebx
mov ecx, dword [esp + 0xa0]
mov byte [ecx], 0
mov dl, byte [esi + ebx]
mov byte [esp + 0x3c], dl
lea edx, [ebx + 8]
cmp dword [esp + 0x4c], edx
jbe 0x41e039
cmp ebp, 0
jbe 0x41e039
cmp byte [esp + 0x3c], 0x1c
je 0x41dc3f
cmp byte [esp + 0x3c], 0x1d
je 0x41dc3f
cmp byte [esp + 0x3c], 0x27
je 0x41dc3f
cmp byte [esp + 0x3c], 0x60
jne 0x41e039
push 0x3e32b8c2
lea edx, [edi + 4]
mov dword [edx], 0
mov al, byte [esi + ebp]
push eax
push edx
call fcn.0041d8c0
push 0x3c8efa35
test al, al
setne byte [esp + 0x4c]
mov cl, byte [esi + ebp + 1]
push ecx
push edx
call fcn.0041d8c0
test al, al
jne 0x41dc77
mov byte [esp + 0x48], 0
push 0x3b3ea2f1
mov al, byte [esi + ebp + 2]
push eax
push edx
call fcn.0041d8c0
test al, al
jne 0x41dc90
mov byte [esp + 0x48], 0
push 0x3998825b
mov al, byte [esi + ebp + 3]
push eax
push edx
call fcn.0041d8c0
test al, al
jne 0x41dca9
mov byte [esp + 0x48], 0
push 0x37f403c4
mov al, byte [esi + ebp + 4]
push eax
push edx
call fcn.0041d8c0
test al, al
jne 0x41dcc2
mov byte [esp + 0x48], 0
push 0x36433637
mov al, byte [esi + ebp + 5]
push eax
push edx
call fcn.0041d8c0
test al, al
jne 0x41dcdb
mov byte [esp + 0x48], 0
mov al, byte [esi + ebp + 3]
push eax
call fcn.0041d960
test al, al
je 0x41dced
xor byte [edx + 3], 0x80
xor eax, eax
mov al, byte [esi + ebx + 1]
mov dword [esp + 0x5c], eax
cmp eax, 0x1c
jae 0x41dd03
mov byte [esp + 0x48], 0
jmp 0x41dd5e
cmp eax, 0x7f
jbe 0x41dd0f
mov byte [esp + 0x48], 0
jmp 0x41dd5e
sub dword [esp + 0x5c], 0x1c
mov cl, byte [esi + ebp + 4]
push ecx
call fcn.0041d960
test al, al
jne 0x41dd27
add dword [esp + 0x5c], 0x64
cmp dword [esp + 0x5c], 0xb4
jb 0x41dd3b
cmp dword [esp + 0x5c], 0xbd
jbe 0x41dd59
cmp dword [esp + 0x5c], 0xbe
jb 0x41dd5e
cmp dword [esp + 0x5c], 0xc7
ja 0x41dd5e
sub dword [esp + 0x5c], 0xbe
jmp 0x41dd5e
sub dword [esp + 0x5c], 0x50
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
mov dword [esp + 4], 0
fild qword [esp]
fmul dword [0x46b334]
fstp dword [esp + 8]
mov ecx, dword [esp + 8]
mov dword [edi], ecx
xor eax, eax
mov al, byte [esi + ebx + 2]
mov dword [esp + 0x5c], eax
cmp eax, 0x1c
jae 0x41dd96
mov byte [esp + 0x48], 0
jmp 0x41ddb3
cmp eax, 0x7f
jbe 0x41dda2
mov byte [esp + 0x48], 0
jmp 0x41ddb3
sub dword [esp + 0x5c], 0x1c
cmp dword [esp + 0x5c], 0x3c
jb 0x41ddb3
sub dword [esp + 0x5c], 0x3c
mov edx, dword [esp + 0x5c]
mov dword [esp], edx
mov dword [esp + 4], 0
fild qword [esp]
fmul dword [0x46b2d8]
fadd dword [esp + 8]
fstp dword [esp + 8]
mov eax, dword [esp + 8]
mov dword [edi], eax
xor edx, edx
mov dl, byte [esi + ebx + 3]
cmp edx, 0x1c
jae 0x41ddeb
mov byte [esp + 0x48], 0
jmp 0x41de14
cmp edx, 0x7f
jbe 0x41ddf7
mov byte [esp + 0x48], 0
jmp 0x41de14
add edx, 0xffffffe4
mov dword [esp], edx
mov dword [esp + 4], 0
fild qword [esp]
fmul dword [str.76C6_]
fadd dword [esp + 8]
fstp dword [edi]
mov dl, byte [esi + ebp + 5]
push edx
call fcn.0041d960
test al, al
jne 0x41de26
xor byte [edi + 3], 0x80
mov eax, dword [esp + 0x7c]
mov dword [eax], 0
mov ecx, dword [esp + 0x80]
mov dword [ecx], 0
mov dl, byte [esp + 0x48]
test dl, dl
je 0x41df3d
movzx ebp, byte [esi + ebx + 4]
cmp ebp, 0x1c
jae 0x41de5a
mov byte [esp + 0x48], 0
jmp 0x41de78
cmp ebp, 0x7f
jbe 0x41de66
mov byte [esp + 0x48], 0
jmp 0x41de78
lea ebp, [ebp + ebp*4]
lea eax, [ebp*2 - 0x118]
mov ebp, dword [esp + 0x7c]
mov dword [ebp], eax
xor eax, eax
mov al, byte [esi + ebx + 5]
cmp eax, 0x1c
jae 0x41de8a
mov byte [esp + 0x48], 0
jmp 0x41decb
cmp eax, 0x7f
jbe 0x41de96
mov byte [esp + 0x48], 0
jmp 0x41decb
add eax, 0xffffffe4
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mul dword [0x46b2d0]
shr edx, 3
mov eax, dword [esp + 0x7c]
add dword [eax], edx
mov eax, dword [esp + 0x34]
xor edx, edx
div dword [0x46b2cc]
lea edx, [edx + edx*4]
lea eax, [edx + edx*4]
lea edx, [eax*4]
mov dword [ecx], edx
xor eax, eax
mov al, byte [esi + ebx + 6]
cmp eax, 0x1c
jae 0x41dedd
mov byte [esp + 0x48], 0
jmp 0x41df22
cmp eax, 0x7f
jbe 0x41dee9
mov byte [esp + 0x48], 0
jmp 0x41df22
mov edx, dword [ecx]
lea eax, [eax + edx - 0x1c]
mov dword [ecx], eax
mov edx, dword [esp + 0x7c]
mov eax, dword [edx]
cmp eax, 0x320
jb 0x41df05
add eax, 0xfffffce0
mov dword [edx], eax
mov eax, dword [ecx]
cmp eax, 0x190
jb 0x41df15
add eax, 0xfffffe70
mov dword [ecx], eax
cmp dword [ecx], 0x168
jb 0x41df22
mov byte [esp + 0x48], 0
mov al, byte [esi + ebx + 7]
mov edx, dword [esp + 0x88]
mov byte [edx], al
mov al, byte [esi + ebx + 8]
mov ebp, dword [esp + 0x8c]
mov byte [ebp], al
add ebx, 9
mov al, byte [esi + ebx]
mov byte [esp + 0x44], al
xor edx, edx
mov dl, byte [esp + 0x44]
cmp edx, 0x7f
ja 0x41df5b
bt dword [0x46b2fc], edx
jb 0x41df60
mov byte [esp + 0x44], 0
mov dl, byte [esi + ebx + 3]
cmp dl, 0x7d
je 0x41df80
mov al, byte [esp + 0x44]
test al, al
je 0x41e025
cmp byte [esi + ebx + 4], 0x7d
jne 0x41e025
cmp dl, 0x7d
je 0x41df96
mov al, byte [esp + 0x44]
test al, al
je 0x41df92
lea edx, [ebx + 1]
jmp 0x41df98
mov edx, ebx
jmp 0x41df98
mov edx, ebx
push 0x46016400
mov al, byte [esi + edx]
push eax
lea ebp, [esp + 0x60]
push ebp
mov dword [esp + 0x64], 0
call fcn.0041d870
test al, al
je 0x41e020
push 0x42b60000
mov al, byte [esi + edx + 1]
push eax
lea ecx, [esp + 0x60]
push ecx
call fcn.0041d870
test al, al
je 0x41e019
push 0x3f800000
mov al, byte [esi + edx + 2]
push eax
lea ecx, [esp + 0x60]
push ecx
call fcn.0041d870
test al, al
je 0x41e012
fld dword [esp + 0x58]
push edx
push 0xffffffffffffffff
push 0
sub esp, 8
fstp qword [esp]
call fcn.004604e0
add esp, 0x10
pop edx
add eax, 0xffffd8f0
mov ecx, dword [esp + 0x84]
mov dword [ecx], eax
lea ebx, [edx + 4]
jmp 0x41e025
mov byte [esp + 0x48], 0
jmp 0x41e025
mov byte [esp + 0x48], 0
jmp 0x41e025
mov byte [esp + 0x48], 0
mov eax, dword [esp + 0xa8]
mov byte [eax], 0x6d
mov byte [esp + 0x40], 0
jmp 0x41ebec
cmp byte [esp + 0x3c], 0x24
jne 0x41e4d6
lea eax, [ebx + 0x1e]
cmp dword [esp + 0x2c], eax
jbe 0x41e4d6
cmp byte [esi + ebx + 1], 0x47
je 0x41e06c
mov byte [esp + 0x40], 0
mov byte [esp + 0x44], 0
mov byte [esp + 0x48], 0
jmp 0x41ebec
lea edx, [ebx + 7]
mov al, byte [esi + ebx + 5]
mov byte [esp + 0x28], al
mov cl, byte [esi + ebx + 3]
cmp cl, 0x47
jne 0x41e08b
cmp byte [esi + ebx + 4], 0x47
jne 0x41e08b
cmp al, 0x41
je 0x41e0fb
cmp cl, 0x52
jne 0x41e09b
cmp byte [esi + ebx + 4], 0x4d
jne 0x41e09b
cmp al, 0x43
je 0x41e0c7
cmp cl, 0x47
je 0x41e0a7
mov byte [esp + 0x48], 0
jmp 0x41e11e
cmp byte [esi + ebx + 4], 0x4c
je 0x41e0b5
mov byte [esp + 0x48], 0
jmp 0x41e11e
cmp al, 0x4c
je 0x41e0c0
mov byte [esp + 0x48], 0
jmp 0x41e11e
mov byte [esp + 0x48], 1
jmp 0x41e11e
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x78]
push ecx
mov dword [esp + 0x68], edx
call fcn.0041d990
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x78]
push ecx
call fcn.0041d990
mov esi, dword [esp + 0x90]
mov edx, dword [esp + 0x60]
mov byte [esp + 0x48], 1
jmp 0x41e11e
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x78]
push ecx
mov dword [esp + 0x68], edx
call fcn.0041d990
mov esi, dword [esp + 0x90]
mov edx, dword [esp + 0x60]
mov byte [esp + 0x48], 1
push 0x3e32b8c2
lea ebx, [edi + 4]
mov dword [ebx], 0
mov al, byte [esi + edx]
push eax
push ebx
call fcn.0041d810
test al, al
jne 0x41e13f
mov byte [esp + 0x48], 0
push 0x3c8efa35
mov al, byte [esi + edx + 1]
push eax
push ebx
call fcn.0041d810
test al, al
jne 0x41e158
mov byte [esp + 0x48], 0
push 0x3b3ea2f1
mov al, byte [esi + edx + 2]
push eax
push ebx
call fcn.0041d810
test al, al
jne 0x41e171
mov byte [esp + 0x48], 0
push 0x3998825b
mov al, byte [esi + edx + 3]
push eax
push ebx
call fcn.0041d810
test al, al
jne 0x41e18a
mov byte [esp + 0x48], 0
push 0x37f403c4
mov al, byte [esi + edx + 5]
push eax
push ebx
call fcn.0041d810
test al, al
jne 0x41e1a3
mov byte [esp + 0x48], 0
push 0x36433637
add edx, 6
mov al, byte [esi + edx]
push eax
push ebx
call fcn.0041d810
test al, al
jne 0x41e1be
mov byte [esp + 0x48], 0
cmp dword [esp + 0x4c], edx
jbe 0x41e21e
push 0x349c2b5f
mov al, byte [esi + edx + 1]
push eax
push ebx
call fcn.0041d810
test al, al
je 0x41e217
mov eax, 0x349c2b5f
mov dword [esp + 0x58], eax
jmp 0x41e1fb
push dword [esp + 0x58]
mov al, byte [esi + edx + 1]
push eax
push ebx
call fcn.0041d810
test al, al
je 0x41ee0c
fld dword [esp + 0x58]
fmul dword [0x46b2c8]
fstp dword [esp + 0x58]
inc edx
cmp dword [esp + 0x4c], edx
ja 0x41e1e4
mov byte [esp + 0x40], 1
jmp 0x41e223
mov byte [esp + 0x40], 0
jmp 0x41e223
mov byte [esp + 0x40], 0
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x78]
push ecx
mov dword [esp + 0x68], edx
call fcn.0041d990
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x90]
cmp byte [edx + esi], 0x53
jne 0x41e24b
xor byte [ebx + 3], 0x80
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x78]
push ecx
call fcn.0041d990
push 0x3fdf66f3
mov dword [edi], 0
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x94]
mov al, byte [edx + esi]
push eax
push edi
call fcn.0041d810
test al, al
jne 0x41e283
mov byte [esp + 0x48], 0
push 0x3e32b8c2
mov al, byte [esi + edx + 1]
push eax
push edi
call fcn.0041d810
test al, al
jne 0x41e29c
mov byte [esp + 0x48], 0
push 0x3c8efa35
mov al, byte [esi + edx + 2]
push eax
push edi
call fcn.0041d810
test al, al
jne 0x41e2b5
mov byte [esp + 0x48], 0
push 0x3b3ea2f1
mov al, byte [esi + edx + 3]
push eax
push edi
call fcn.0041d810
test al, al
jne 0x41e2ce
mov byte [esp + 0x48], 0
push 0x3998825b
mov al, byte [esi + edx + 4]
push eax
push edi
call fcn.0041d810
test al, al
jne 0x41e2e7
mov byte [esp + 0x48], 0
push 0x37f403c4
mov al, byte [esi + edx + 6]
push eax
push edi
call fcn.0041d810
test al, al
jne 0x41e300
mov byte [esp + 0x48], 0
push 0x36433637
add edx, 7
mov al, byte [esi + edx]
push eax
push edi
call fcn.0041d810
test al, al
jne 0x41e31b
mov byte [esp + 0x48], 0
cmp dword [esp + 0x4c], edx
jbe 0x41e37e
push 0x349c2b5f
mov al, byte [esi + edx + 1]
push eax
push edi
call fcn.0041d810
test al, al
je 0x41e373
mov eax, 0x349c2b5f
mov dword [esp + 0x58], eax
jmp 0x41e357
push dword [esp + 0x58]
mov al, byte [esi + edx + 1]
push eax
push edi
call fcn.0041d810
test al, al
je 0x41ee16
fld dword [esp + 0x58]
fmul dword [0x46b2c8]
fstp dword [esp + 0x58]
inc edx
cmp dword [esp + 0x4c], edx
ja 0x41e340
mov byte [esp + 0x40], 1
jmp 0x41e387
mov eax, 0x349c2b5f
mov dword [esp + 0x58], eax
jmp 0x41e387
mov eax, 0x349c2b5f
mov dword [esp + 0x58], eax
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x78]
push ecx
mov dword [esp + 0x68], edx
call fcn.0041d990
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x90]
cmp byte [edx + esi], 0x57
jne 0x41e3af
xor byte [edi + 3], 0x80
cmp byte [esp + 0x28], 0x43
je 0x41e46a
cmp byte [esp + 0x28], 0x41
jne 0x41ef3d
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x78]
push ecx
call fcn.0041d990
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x78]
push ecx
call fcn.0041d990
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x78]
push ecx
call fcn.0041d990
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x78]
push ecx
call fcn.0041d990
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x90]
mov bl, byte [edx + esi]
cmp bl, 0x2d
jne 0x41e415
inc edx
xor eax, eax
mov dword [esp + 0x58], eax
jmp 0x41e451
fld dword [esp + 0x58]
fcomp dword [0x46b2c4]
fnstsw ax
and ah, 0x41
je 0x41ee20
push 0x3dcccccd
mov al, byte [esi + edx]
push eax
lea ecx, [esp + 0x60]
push ecx
call fcn.0041d810
test al, al
je 0x41ee20
inc edx
fld dword [esp + 0x58]
fmul dword [0x46b30c]
fstp dword [esp + 0x58]
cmp dword [esp + 0x4c], edx
ja 0x41e420
jmp 0x41ee20
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x78]
push ecx
call fcn.0041d990
mov esi, dword [esp + 0x90]
mov edx, dword [esp + 0x60]
xor eax, eax
mov dword [esp + 0x58], eax
jmp 0x41e4bd
fld dword [esp + 0x58]
fcomp dword [0x46b2c4]
fnstsw ax
and ah, 0x41
je 0x41ee7e
push 0x3dcccccd
mov al, byte [esi + edx]
push eax
lea ecx, [esp + 0x60]
push ecx
call fcn.0041d810
test al, al
je 0x41ee7e
inc edx
fld dword [esp + 0x58]
fmul dword [0x46b30c]
fstp dword [esp + 0x58]
cmp dword [esp + 0x4c], edx
ja 0x41e48c
jmp 0x41ee7e
lea ebp, [edi + 4]
mov dword [ebp], 0
mov dword [edi], 0
cmp byte [esp + 0x3c], 0x21
je 0x41e562
cmp byte [esp + 0x3c], 0x3d
je 0x41e562
cmp byte [esp + 0x3c], 0x2f
je 0x41e502
cmp byte [esp + 0x3c], 0x40
jne 0x41e512
mov al, byte [esi + ebx + 7]
cmp al, 0x7a
je 0x41e565
cmp al, 0x68
je 0x41e565
cmp al, 0x2f
je 0x41e565
cmp byte [esp + 0x3c], 0x3b
jne 0x41e525
mov al, byte [esi + ebx + 0xa]
cmp al, 0x2a
je 0x41e55d
cmp al, 0x5f
je 0x41e55d
cmp byte [esp + 0x3c], 0x29
je 0x41e530
xor edx, edx
jmp 0x41e565
lea edx, [ebx + 4]
cmp dword [esp + 0x4c], edx
jbe 0x41e55a
mov al, byte [esi + edx]
cmp al, 0x21
je 0x41e55a
cmp al, 0x5f
je 0x41e55a
jmp 0x41e553
mov al, byte [esi + edx]
cmp al, 0x21
je 0x41e55a
cmp al, 0x5f
je 0x41e55a
inc edx
cmp dword [esp + 0x4c], edx
ja 0x41e548
inc edx
jmp 0x41e565
lea edx, [ebx + 0x12]
jmp 0x41e565
lea edx, [ebx + 1]
cmp edx, 0
jbe 0x41ebdd
mov al, byte [esi + edx]
mov byte [esp + 0x38], al
cmp al, 0x30
jb 0x41e581
cmp al, 0x39
jbe 0x41e806
cmp byte [esi + edx + 0xa], 0x20
setne cl
and ecx, 0xff
lea eax, [edx + ecx*2 + 0xb]
cmp dword [esp + 0x4c], eax
jae 0x41e5ad
mov byte [esp + 0x40], 0
mov byte [esp + 0x44], 0
mov byte [esp + 0x48], 0
jmp 0x41ebec
push dword [esp + 0x38]
call fcn.0041db70
mov byte [esp + 0x1c], al
push 0x4937fa30
mov ecx, dword [esp + 0x90]
mov byte [ecx], al
mov al, byte [esi + edx + 1]
push eax
push ebp
call fcn.0041d870
push 0x46016400
test al, al
setne byte [esp + 0x4c]
mov cl, byte [esi + edx + 2]
push ecx
push ebp
call fcn.0041d870
test al, al
jne 0x41e5f3
mov byte [esp + 0x48], 0
push 0x42b60000
mov al, byte [esi + edx + 3]
push eax
push ebp
call fcn.0041d870
test al, al
jne 0x41e60c
mov byte [esp + 0x48], 0
push 0x3f800000
mov al, byte [esi + edx + 4]
push eax
push ebp
call fcn.0041d870
test al, al
jne 0x41e625
mov byte [esp + 0x48], 0
push 0x4937fa30
fld dword [ebp]
fmul dword [0x46b2b8]
fsubr dword [0x46b2b4]
fstp dword [ebp]
mov al, byte [esi + edx + 5]
push eax
push edi
call fcn.0041d870
test al, al
jne 0x41e650
mov byte [esp + 0x48], 0
push 0x46016400
mov al, byte [esi + edx + 6]
push eax
push edi
call fcn.0041d870
test al, al
jne 0x41e669
mov byte [esp + 0x48], 0
push 0x42b60000
mov al, byte [esi + edx + 7]
push eax
push edi
call fcn.0041d870
test al, al
jne 0x41e682
mov byte [esp + 0x48], 0
push 0x3f800000
mov al, byte [esi + edx + 8]
push eax
push edi
call fcn.0041d870
test al, al
jne 0x41e69b
mov byte [esp + 0x48], 0
fld dword [edi]
fmul dword [0x46b2b0]
fsub dword [0x46b2ac]
fstp dword [edi]
mov al, byte [esi + edx + 9]
mov ecx, dword [esp + 0x88]
mov byte [ecx], al
mov al, byte [esp + 0x48]
test al, al
je 0x41e7ed
mov al, byte [esi + edx + 0xa]
cmp al, 0x7d
je 0x41e7e3
movzx ebp, byte [esi + edx + 0xc]
shr ebp, 3
and ebp, 3
cmp ebp, 2
je 0x41e76e
and eax, 0xff
cmp eax, 0x21
jb 0x41e70c
cmp eax, 0x7f
ja 0x41e70c
add eax, 0xffffffdf
cmp eax, 0x59
ja 0x41e70c
lea eax, [eax*4]
mov ebp, dword [esp + 0x80]
mov dword [ebp], eax
xor eax, eax
mov al, byte [esi + edx + 0xb]
cmp eax, 0x21
jb 0x41e7e3
cmp eax, 0x7f
ja 0x41e7e3
add eax, 0xffffffdf
mov dword [esp], eax
mov dword [esp + 4], 0
fild qword [esp]
sub esp, 4
fstp dword [esp]
push 0x3f8a3d71
mov dword [esp + 8], edx
call fcn.0045c990
mov edx, dword [esp]
fsub dword [0x46b328]
push edx
push 0xffffffffffffffff
push 0
sub esp, 8
fstp qword [esp]
call fcn.004604e0
add esp, 0x10
pop edx
mov ecx, dword [esp + 0x7c]
mov dword [ecx], eax
jmp 0x41e7e3
and eax, 0xff
movzx ebp, byte [esi + edx + 0xb]
cmp eax, 0x21
jb 0x41e7e3
cmp eax, 0x7f
ja 0x41e7e3
cmp ebp, 0x21
jb 0x41e7e3
cmp ebp, 0x7f
ja 0x41e7e3
lea ecx, [eax + eax*8]
lea ebx, [ecx + ecx*4]
lea eax, [eax + ebx*2 - 0xbdc]
add ebp, eax
mov dword [esp], ebp
mov dword [esp + 4], 0
fild qword [esp]
sub esp, 4
fstp dword [esp]
push 0x3f804189
mov dword [esp + 8], edx
call fcn.0045c990
mov edx, dword [esp]
fmul dword [0x46b2a8]
push edx
push 0xffffffffffffffff
push 0
sub esp, 8
fstp qword [esp]
call fcn.004604e0
add esp, 0x10
pop edx
mov ecx, dword [esp + 0x84]
mov dword [ecx], eax
lea ebx, [edx + 0xd]
mov byte [esp + 0x40], 1
jmp 0x41e7f2
mov byte [esp + 0x40], 0
mov eax, dword [esp + 0xa8]
mov byte [eax], 0x63
mov byte [esp + 0x44], 0
jmp 0x41ebec
lea ecx, [edx + 0x11]
cmp dword [esp + 0x4c], ecx
jae 0x41e823
mov byte [esp + 0x40], 0
mov byte [esp + 0x44], 0
mov byte [esp + 0x48], 0
jmp 0x41ebec
cmp byte [esi + edx + 4], 0x2e
je 0x41e83e
mov byte [esp + 0x40], 0
mov byte [esp + 0x44], 0
mov byte [esp + 0x48], 0
jmp 0x41ebec
cmp byte [esi + edx + 0xe], 0x2e
je 0x41e859
mov byte [esp + 0x40], 0
mov byte [esp + 0x44], 0
mov byte [esp + 0x48], 0
jmp 0x41ebec
mov cl, byte [esi + edx + 7]
push ecx
call fcn.0041d9d0
test al, al
je 0x41ebcc
mov al, byte [esi + edx + 0x11]
push eax
call fcn.0041da00
test al, al
je 0x41ebbb
push 0x3e32b8c2
mov al, byte [esi + edx]
push eax
push ebp
call fcn.0041d810
push 0x3c8efa35
test al, al
setne byte [esp + 0x4c]
mov cl, byte [esi + edx + 1]
push ecx
push ebp
call fcn.0041d810
test al, al
jne 0x41e8ac
mov byte [esp + 0x48], 0
push 0x3b3ea2f1
mov al, byte [esi + edx + 2]
push eax
push ebp
call fcn.0041d810
test al, al
jne 0x41e8c5
mov byte [esp + 0x48], 0
cmp byte [esi + edx + 2], 0x36
jb 0x41e8d1
mov byte [esp + 0x48], 0
push 0x3998825b
mov al, byte [esi + edx + 3]
push eax
push ebp
call fcn.0041d810
test al, al
jne 0x41e8ea
mov byte [esp + 0x48], 0
push 0x37f403c4
mov al, byte [esi + edx + 5]
push eax
push ebp
call fcn.0041d810
test al, al
jne 0x41e903
mov byte [esp + 0x48], 0
push 0x36433637
mov al, byte [esi + edx + 6]
push eax
push ebp
call fcn.0041d810
test al, al
jne 0x41e91c
mov byte [esp + 0x48], 0
mov al, byte [esi + edx + 7]
sub al, 0x61
cmp al, 0x19
ja 0x41e928
sub al, 0x20
add al, 0x61
cmp al, 0x53
je 0x41e939
cmp al, 0x4e
je 0x41e93d
mov byte [esp + 0x48], 0
jmp 0x41e93d
xor byte [ebp + 3], 0x80
push 0x3fdf66f3
mov al, byte [esi + edx + 8]
mov ecx, dword [esp + 0x90]
mov byte [ecx], al
mov al, byte [esi + edx + 9]
push eax
push edi
call fcn.0041d810
test al, al
jne 0x41e963
mov byte [esp + 0x48], 0
push 0x3e32b8c2
mov al, byte [esi + edx + 0xa]
push eax
push edi
call fcn.0041d810
test al, al
jne 0x41e97c
mov byte [esp + 0x48], 0
push 0x3c8efa35
mov al, byte [esi + edx + 0xb]
push eax
push edi
call fcn.0041d810
test al, al
jne 0x41e995
mov byte [esp + 0x48], 0
push 0x3b3ea2f1
mov al, byte [esi + edx + 0xc]
push eax
push edi
call fcn.0041d810
test al, al
jne 0x41e9ae
mov byte [esp + 0x48], 0
cmp byte [esi + edx + 0xc], 0x36
jb 0x41e9ba
mov byte [esp + 0x48], 0
push 0x3998825b
mov al, byte [esi + edx + 0xd]
push eax
push edi
call fcn.0041d810
test al, al
jne 0x41e9d3
mov byte [esp + 0x48], 0
push 0x37f403c4
mov al, byte [esi + edx + 0xf]
push eax
push edi
call fcn.0041d810
test al, al
jne 0x41e9ec
mov byte [esp + 0x48], 0
push 0x36433637
mov al, byte [esi + edx + 0x10]
push eax
push edi
call fcn.0041d810
test al, al
jne 0x41ea05
mov byte [esp + 0x48], 0
mov al, byte [esi + edx + 0x11]
sub al, 0x61
cmp al, 0x19
ja 0x41ea11
sub al, 0x20
add al, 0x61
cmp al, 0x57
je 0x41ea22
cmp al, 0x45
je 0x41ea26
mov byte [esp + 0x48], 0
jmp 0x41ea26
xor byte [edi + 3], 0x80
mov al, byte [esi + edx + 0x12]
mov ecx, dword [esp + 0x88]
mov byte [ecx], al
lea ebx, [edx + 0x13]
mov eax, dword [esp + 0xa8]
mov byte [eax], 0x67
lea edx, [ebx + 7]
cmp dword [esp + 0x4c], edx
jae 0x41ea58
mov byte [esp + 0x40], 0
mov byte [esp + 0x44], 0
jmp 0x41ebec
lea edx, [esp + 0x60]
push edx
lea ebp, [esp + 0x58]
push ebp
lea edx, [esp + 0x7c]
push edx
mov dword [esp + 0x6c], ebx
call fcn.0041da30
mov esi, dword [esp + 0x90]
mov edx, dword [esp + 0x60]
test al, al
je 0x41ea8e
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x54]
mov dword [eax], ecx
jmp 0x41ea9b
mov eax, dword [esp + 0x80]
mov dword [eax], 0
mov ecx, dword [esp + 0x8c]
cmp byte [ecx], 0x5c
jne 0x41eab4
mov ebp, dword [esp + 0x88]
cmp byte [ebp], 0x6c
je 0x41eb1b
cmp byte [esi + edx], 0x2f
je 0x41eac9
mov byte [esp + 0x40], 0
mov byte [esp + 0x44], 0
jmp 0x41ebec
lea ebp, [esp + 0x60]
push ebp
lea eax, [esp + 0x60]
push eax
lea ebp, [esp + 0x7c]
push ebp
inc edx
mov dword [esp + 0x6c], edx
call fcn.0041da30
mov esi, dword [esp + 0x90]
mov edx, dword [esp + 0x60]
test al, al
je 0x41eb0c
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x5c]
mov dword [eax], ecx
mov byte [esp + 0x40], 0
mov byte [esp + 0x44], 0
mov ebx, edx
jmp 0x41ebec
mov byte [esp + 0x40], 0
mov byte [esp + 0x44], 0
jmp 0x41ebec
mov cl, byte [esi + edx]
cmp cl, 0x2f
je 0x41eb37
cmp cl, 0x31
je 0x41eb37
mov byte [esp + 0x40], 0
mov byte [esp + 0x44], 0
jmp 0x41ebec
lea eax, [esp + 0x60]
push eax
lea ebp, [esp + 0x60]
push ebp
lea eax, [esp + 0x7c]
push eax
inc edx
mov dword [esp + 0x6c], edx
mov byte [esp + 0xc], cl
call fcn.0041da30
mov byte [esp + 0x20], al
mov cl, byte [esp]
mov esi, dword [esp + 0x90]
mov edx, dword [esp + 0x60]
test al, al
je 0x41ebaf
cmp cl, 0x31
jne 0x41eb77
add dword [esp + 0x5c], 0x3e8
cmp dword [esp + 0x5c], 0x63f
jbe 0x41eb8d
mov byte [esp + 0x40], 0
mov byte [esp + 0x44], 0
jmp 0x41ebec
mov ecx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x5c]
mov dword [ecx], ebp
mov eax, dword [esp + 0xa8]
mov byte [eax], 0x41
mov byte [esp + 0x40], 0
mov byte [esp + 0x44], 0
mov ebx, edx
jmp 0x41ebec
mov byte [esp + 0x40], 0
mov byte [esp + 0x44], 0
jmp 0x41ebec
mov byte [esp + 0x40], 0
mov byte [esp + 0x44], 0
mov byte [esp + 0x48], 0
jmp 0x41ebec
mov byte [esp + 0x40], 0
mov byte [esp + 0x44], 0
mov byte [esp + 0x48], 0
jmp 0x41ebec
mov byte [esp + 0x40], 0
mov byte [esp + 0x44], 0
mov byte [esp + 0x48], 0
mov eax, dword [esp + 0xa4]
dec eax
cmp eax, 0
jbe 0x41ec23
cmp dword [esp + 0x4c], ebx
jbe 0x41ec1f
xor ecx, ecx
jmp 0x41ec0a
cmp dword [esp + 0x4c], ebx
jbe 0x41ec25
mov dl, byte [esi + ebx]
mov ebp, dword [esp + 0xa0]
mov byte [ecx + ebp], dl
inc ebx
inc ecx
cmp ecx, eax
jb 0x41ec04
jmp 0x41ec25
xor ecx, ecx
jmp 0x41ec25
xor ecx, ecx
cmp ecx, 0
jbe 0x41ec4e
xor edx, edx
mov dl, byte [esp + 0x44]
cmp edx, 0x7f
ja 0x41ec4e
bt dword [0x46b2ec], edx
jae 0x41ec4e
lea ebp, [ecx - 1]
mov edx, dword [esp + 0xa0]
cmp byte [edx + ebp], 0x3d
je 0x41ec78
cmp ecx, 1
jbe 0x41ec76
xor edx, edx
mov dl, byte [esp + 0x44]
cmp edx, 0x7f
jbe 0x41ec62
mov ebp, ecx
jmp 0x41ec78
bt dword [0x46b2dc], edx
jb 0x41ec6f
mov ebp, ecx
jmp 0x41ec78
add ecx, 0xfffffffe
mov ebp, ecx
jmp 0x41ec78
mov ebp, ecx
mov ecx, dword [esp + 0xa0]
mov byte [ecx + ebp], 0
cmp ebp, 0
jbe 0x41ed28
xor edx, edx
jmp 0x41ec91
inc edx
lea eax, [edx + 9]
cmp ebp, eax
jb 0x41ef7c
mov eax, dword [esp + 0xa0]
cmp byte [eax + edx], 0x2f
jne 0x41ec90
cmp byte [eax + edx + 1], 0x41
jne 0x41ec90
cmp byte [eax + edx + 2], 0x3d
jne 0x41ec90
lea ecx, [edx + 3]
push ecx
lea ebx, [esp + 0x5c]
push ebx
push dword [esp + 0xac]
push eax
mov dword [esp + 0x10], edx
call fcn.0041dad0
mov edx, dword [esp]
test al, al
je 0x41ec90
fld dword [esp + 0x58]
fmul dword [0x46b2a8]
push edx
push 0x7fffffff
push 0x80000000
sub esp, 8
fstp qword [esp]
call fcn.00460570
add esp, 0x10
pop edx
mov ecx, dword [esp + 0x84]
mov dword [ecx], eax
cmp esp, 0
mov eax, dword [esp + 0xa0]
mov cl, byte [eax + edx + 9]
mov byte [eax + edx], cl
inc edx
lea ebx, [edx + 9]
cmp ebp, ebx
jae 0x41ed08
lea ecx, [ebp - 9]
mov ebp, ecx
jmp 0x41ef7c
mov al, byte [esp + 0x48]
test al, al
je 0x41edaf
mov cl, byte [esp + 0x40]
test cl, cl
jne 0x41edaf
mov edx, dword [edi + 4]
mov dword [esp + 8], edx
fldz
fcomp dword [esp + 8]
fnstsw ax
and ah, 0x41
jne 0x41ed5b
fld dword [esp + 8]
fsub dword [0x46b2a4]
fstp dword [edi + 4]
jmp 0x41ed75
cmp dword [esp + 8], 1
sbb eax, eax
or eax, dword [esp + 8]
jle 0x41ed75
fld dword [esp + 8]
fadd dword [0x46b2a4]
fstp dword [edi + 4]
mov eax, dword [edi]
mov dword [esp + 8], eax
fldz
fcomp dword [esp + 8]
fnstsw ax
and ah, 0x41
jne 0x41ed96
fld dword [esp + 8]
fsub dword [0x46b2a4]
fstp dword [edi]
jmp 0x41edaf
cmp dword [esp + 8], 1
sbb eax, eax
or eax, dword [esp + 8]
jle 0x41edaf
fld dword [esp + 8]
fadd dword [0x46b2a4]
fstp dword [edi]
mov al, byte [esp + 0x48]
test al, al
je 0x41edf5
mov ecx, dword [edi]
mov dword [esp + 8], ecx
test dword [esp + 8], 0x7fffffff
jne 0x41edd0
test dword [edi + 4], 0x7fffffff
je 0x41edf5
fld dword [esp + 8]
fabs
fcomp dword [0x46b2ac]
fnstsw ax
and ah, 1
je 0x41edf5
fld dword [edi + 4]
fabs
fcomp dword [0x46b2b4]
fnstsw ax
and ah, 1
jne 0x41ee02
mov dword [edi], 0
mov dword [edi + 4], 0
sub esp, 0xffffff9c
pop edi
pop esi
pop ebx
pop ebp
ret 0x34
mov byte [esp + 0x40], 1
jmp 0x41e223
mov byte [esp + 0x40], 1
jmp 0x41e387
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x78]
push ecx
mov dword [esp + 0x68], edx
call fcn.0041d990
mov esi, dword [esp + 0x90]
mov edx, dword [esp + 0x60]
cmp bl, 0x2d
jne 0x41ee48
xor byte [esp + 0x5b], 0x80
cmp byte [esi + edx], 0x4d
jne 0x41ef3d
fld dword [esp + 0x58]
push edx
push 0x7fffffff
push 0x80000000
sub esp, 8
fstp qword [esp]
call fcn.00460570
add esp, 0x10
pop edx
mov ecx, dword [esp + 0x84]
mov dword [ecx], eax
jmp 0x41ef3d
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0x78]
push ecx
fld dword [esp + 0x60]
fdiv dword [0x46b2c0]
fadd dword [0x46b320]
push edx
push 0xffffffffffffffff
push 0
sub esp, 8
fstp qword [esp]
call fcn.004604e0
add esp, 0x10
pop edx
mov ebx, dword [esp + 0x84]
mov dword [ebx], eax
mov dword [esp + 0x68], edx
call fcn.0041d990
mov esi, dword [esp + 0x90]
mov edx, dword [esp + 0x60]
xor eax, eax
mov dword [esp + 0x58], eax
jmp 0x41eefd
fld dword [esp + 0x58]
fcomp dword [0x46b2bc]
fnstsw ax
and ah, 0x41
je 0x41ef11
push 0x3dcccccd
mov al, byte [esi + edx]
push eax
lea ecx, [esp + 0x60]
push ecx
call fcn.0041d810
test al, al
je 0x41ef11
inc edx
fld dword [esp + 0x58]
fmul dword [0x46b30c]
fstp dword [esp + 0x58]
cmp dword [esp + 0x4c], edx
ja 0x41eed4
fld dword [esp + 0x58]
push edx
push 0xffffffffffffffff
push 0
sub esp, 8
fstp qword [esp]
call fcn.004604e0
add esp, 0x10
pop edx
mov ecx, dword [esp + 0x80]
mov dword [ecx], eax
cmp dword [esp + 0x4c], edx
jae 0x41ef3d
mov byte [esp + 0x48], 0
cmp dword [esp + 0x4c], edx
jbe 0x41ef59
cmp byte [esi + edx], 0x2a
je 0x41ef59
jmp 0x41ef52
cmp byte [esi + edx], 0x2a
je 0x41ef59
inc edx
cmp dword [esp + 0x4c], edx
ja 0x41ef4c
add edx, 3
cmp dword [esp + 0x4c], edx
ja 0x41ef66
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0xa8]
mov byte [eax], 0x67
mov byte [esp + 0x44], 0
mov ebx, edx
jmp 0x41ebec
cmp ebp, 5
jb 0x41ed28
test dword [edi], 0x7fffffff
jne 0x41ef9a
test dword [edi + 4], 0x7fffffff
je 0x41ed28
lea edx, [ebp - 5]
mov dword [esp + 0x5c], 0
jmp 0x41efbc
cmp byte [eax + edx + 4], 0x7c
jne 0x41efb3
inc dword [esp + 0x5c]
test edx, edx
je 0x41ed28
dec edx
mov eax, dword [esp + 0xa0]
cmp byte [eax + edx], 0x21
jne 0x41efa8
cmp byte [eax + edx + 4], 0x21
jne 0x41efa8
mov bl, byte [eax + edx + 1]
cmp bl, 0x41
jae 0x41efe7
xor ecx, ecx
mov dword [esp + 0x58], ecx
xor esi, esi
mov dword [esp + 0x50], esi
jmp 0x41f049
cmp bl, 0x5a
jbe 0x41effa
xor ecx, ecx
mov dword [esp + 0x58], ecx
xor esi, esi
mov dword [esp + 0x50], esi
jmp 0x41f049
push 0x349c2b5f
mov cl, byte [eax + edx + 2]
push ecx
lea esi, [esp + 0x60]
push esi
mov dword [esp + 0x64], 0
call fcn.0041d810
test al, al
je 0x41f043
push 0x349c2b5f
mov ecx, dword [esp + 0xa4]
mov al, byte [ecx + edx + 3]
push eax
lea eax, [esp + 0x58]
push eax
mov dword [esp + 0x5c], 0
call fcn.0041d810
test al, al
je 0x41f049
jmp 0x41f0a1
xor eax, eax
mov dword [esp + 0x50], eax
cmp bl, 0x61
jb 0x41f12f
cmp bl, 0x7a
ja 0x41f12f
push 0x33096dd9
mov ecx, dword [esp + 0xa4]
mov al, byte [ecx + edx + 2]
push eax
lea eax, [esp + 0x60]
push eax
call fcn.0041d870
test al, al
je 0x41f12f
push 0x33096dd9
mov ecx, dword [esp + 0xa4]
mov al, byte [ecx + edx + 3]
push eax
lea eax, [esp + 0x58]
push eax
call fcn.0041d870
test al, al
je 0x41f12f
mov eax, dword [edi + 4]
mov dword [esp + 8], eax
fldz
fcomp dword [esp + 8]
fnstsw ax
and ah, 0x41
jne 0x41f0c2
fld dword [esp + 0x58]
fsubr dword [esp + 8]
fstp dword [edi + 4]
jmp 0x41f0cd
fld dword [esp + 0x58]
fadd dword [esp + 8]
fstp dword [edi + 4]
mov eax, dword [edi]
mov dword [esp + 8], eax
fldz
fcomp dword [esp + 8]
fnstsw ax
and ah, 0x41
jne 0x41f0ec
fld dword [esp + 0x50]
fsubr dword [esp + 8]
fstp dword [edi]
jmp 0x41f0f6
fld dword [esp + 0x50]
fadd dword [esp + 8]
fstp dword [edi]
test byte [esp + 0x5c], 1
je 0x41f104
mov byte [esp + 0x40], 1
jmp 0x41f12f
lea eax, [edx + 5]
cmp ebp, eax
jae 0x41f114
mov byte [esp + 0x40], 1
jmp 0x41f12f
mov eax, dword [esp + 0xa0]
mov cl, byte [eax + edx + 5]
mov byte [eax + edx], cl
inc edx
lea ebx, [edx + 5]
cmp ebp, ebx
jae 0x41f114
mov byte [esp + 0x40], 1
mov eax, dword [esp + 0xa8]
mov cl, byte [eax]
cmp cl, 0
jbe 0x41ed28
sub cl, 0x61
cmp cl, 0x19
ja 0x41f14c
sub cl, 0x20
add cl, 0x61
mov byte [eax], cl
jmp 0x41ed28