Function at 0x40abd0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc4
mov eax, dword [0x4e3a20]
xor eax, esp
mov dword [esp + 0xc0], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov dword [esp + 0x5c], edx
mov edx, dword [ebp + 8]
mov esi, ecx
mov ecx, dword [esp + 0x5c]
push edi
xor edi, edi
mov dword [esp + 0x28], esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x50], 0
mov dword [esp + 0x14], edi
test ecx, ecx
je 0x40ac35
and cl, 2
mov byte [esp + 0x12], cl
je 0x40ac2e
add eax, 4
mov dword [esp + 0x18], eax
mov eax, dword [eax - 4]
mov dword [esp + 0x50], eax
and byte [esp + 0x60], 1
jmp 0x40ac3f
mov byte [esp + 0x60], 0
mov byte [esp + 0x12], 0
movsx eax, byte [edx]
test eax, eax
je case.default.0x40af00
lea ebx, [ebx]
cmp eax, 0x25
je 0x40aceb
mov edi, edx
mov dword [esp + 0x14], edi
nop
movsx esi, byte [edx + 1]
inc edx
cmp esi, 0x25
je 0x40ac6e
test esi, esi
jne 0x40ac60
mov eax, dword [esp + 0x28]
mov ecx, edx
sub ecx, edi
mov dword [esp + 0x48], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x44], ecx
lea eax, [edx + ecx]
mov ecx, dword [esp + 0x28]
cmp eax, dword [ecx + 0x10]
mov ecx, dword [esp + 0x44]
jl 0x40acbc
mov edx, ecx
mov ecx, dword [esp + 0x28]
call fcn.0040bd60
mov dword [esp + 0x54], eax
test eax, eax
jle 0x40acdb
mov ecx, dword [esp + 0x28]
push eax
mov eax, dword [ecx + 8]
add eax, dword [ecx + 0xc]
push edi
push eax
call fcn.004a5f50
mov eax, dword [esp + 0x60]
jmp 0x40acd1
mov eax, dword [esp + 0x28]
push ecx
mov eax, dword [eax + 8]
add eax, edx
push edi
push eax
call fcn.004a5f50
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x34]
add esp, 0xc
add dword [ecx + 0xc], eax
test esi, esi
je case.default.0x40af00
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x48]
movsx ecx, byte [edx + 1]
inc edx
test ecx, ecx
je 0x40bc7a
xor al, al
mov byte [esp + 0x36], al
mov byte [esp + 0x2f], al
mov byte [esp + 0x22], al
mov byte [esp + 0x10], al
mov byte [esp + 0x37], al
mov byte [esp + 0xf], al
lea eax, [ecx - 0x20]
cmp eax, 0x10
ja case.0x40ad21.34
movzx eax, byte [eax + 0x40bd08]
jmp dword [eax*4 + 0x40bcec]
mov byte [esp + 0xf], 1
jmp 0x40ad50
mov byte [esp + 0x37], 1
jmp 0x40ad50
mov byte [esp + 0x10], 1
jmp 0x40ad50
mov byte [esp + 0x22], 1
jmp 0x40ad50
mov byte [esp + 0x2f], 1
jmp 0x40ad50
mov byte [esp + 0x36], 1
movsx ecx, byte [edx + 1]
inc edx
test ecx, ecx
jne 0x40ad12
mov dword [esp + 0x48], edx
mov dword [esp + 0x1c], 0
cmp ecx, 0x2a
jne 0x40ada8
cmp byte [esp + 0x12], 0
je 0x40ad80
mov ecx, dword [esp + 0x50]
call fcn.0040aad0
mov edx, dword [esp + 0x48]
jmp 0x40ad8e
mov eax, dword [esp + 0x18]
add eax, 4
mov dword [esp + 0x18], eax
mov eax, dword [eax - 4]
mov dword [esp + 0x1c], eax
test eax, eax
jns 0x40ada1
neg eax
mov byte [esp + 0xf], 1
mov dword [esp + 0x1c], eax
movsx ecx, byte [edx + 1]
inc edx
jmp 0x40add0
cmp ecx, 0x30
jl 0x40add4
mov edi, dword [esp + 0x1c]
cmp ecx, 0x39
jg 0x40adc8
lea edi, [edi + edi*4]
inc edx
lea edi, [edi - 0x18]
lea edi, [ecx + edi*2]
movsx ecx, byte [edx]
cmp ecx, 0x30
jge 0x40adb1
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x48], edx
cmp ecx, 0x2e
jne 0x40ae56
movsx ecx, byte [edx + 1]
inc edx
xor esi, esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x48], edx
cmp ecx, 0x2a
jne 0x40ae30
cmp byte [esp + 0x12], 0
je 0x40ae09
mov ecx, dword [esp + 0x50]
call fcn.0040aad0
mov edx, dword [esp + 0x48]
mov esi, eax
mov dword [esp + 0x24], eax
jmp 0x40ae1b
mov eax, dword [esp + 0x18]
add eax, 4
mov dword [esp + 0x18], eax
mov esi, dword [eax - 4]
mov dword [esp + 0x24], esi
test esi, esi
jns 0x40ae25
neg esi
mov dword [esp + 0x24], esi
movsx ecx, byte [edx + 1]
inc edx
mov dword [esp + 0x48], edx
jmp 0x40ae5d
cmp ecx, 0x30
jl 0x40ae5d
cmp ecx, 0x39
jg 0x40ae5d
lea esi, [esi + esi*4]
inc edx
lea esi, [esi - 0x18]
mov dword [esp + 0x48], edx
lea esi, [ecx + esi*2]
movsx ecx, byte [edx]
mov dword [esp + 0x24], esi
cmp ecx, 0x30
jge 0x40ae35
jmp 0x40ae5d
or esi, 0xffffffff
mov dword [esp + 0x24], esi
cmp ecx, 0x6c
jne 0x40ae85
movsx ecx, byte [edx + 1]
inc edx
mov byte [esp + 0x23], 1
mov dword [esp + 0x48], edx
cmp ecx, 0x6c
jne 0x40ae8a
movsx ecx, byte [edx + 1]
inc edx
mov byte [esp + 0x13], 1
mov dword [esp + 0x48], edx
jmp 0x40ae8f
mov byte [esp + 0x23], 0
mov byte [esp + 0x13], 0
xor eax, eax
mov dword [esp + 0x44], 0x4cbba8
mov byte [esp + 0x11], 0
mov dword [esp + 0x4c], eax
mov edx, 0x4cbba8
movsx eax, byte [edx]
cmp ecx, eax
je 0x40aec3
inc dword [esp + 0x4c]
add edx, 6
cmp edx, 0x4cbc32
jl 0x40aea7
mov dl, byte [esp + 0x11]
jmp 0x40aeed
cmp byte [esp + 0x60], 0
mov eax, dword [esp + 0x4c]
lea eax, [eax + eax*2]
lea eax, [eax*2 + 0x4cbba8]
mov dword [esp + 0x44], eax
jne 0x40aee6
test byte [eax + 2], 2
jne case.default.0x40af00
mov dl, byte [eax + 3]
mov byte [esp + 0x11], dl
movzx eax, dl
xor ecx, ecx
dec eax
mov dword [esp + 0x4c], ecx
cmp eax, 0xf
ja case.default.0x40af00
jmp dword [eax*4 + 0x40bd1c]
xor al, al
mov cl, 1
jmp 0x40af15
mov al, byte [esp + 0x13]
mov cl, byte [esp + 0x23]
mov edx, dword [esp + 0x44]
test byte [edx + 2], 1
je 0x40afcd
cmp byte [esp + 0x12], 0
je 0x40af35
mov ecx, dword [esp + 0x50]
call fcn.0040aad0
jmp 0x40af6f
test al, al
je 0x40af4c
mov edi, dword [esp + 0x18]
add edi, 8
mov dword [esp + 0x18], edi
mov eax, dword [edi - 8]
mov ecx, dword [edi - 4]
jmp 0x40af71
test cl, cl
je 0x40af60
mov edi, dword [esp + 0x18]
add edi, 4
mov dword [esp + 0x18], edi
mov eax, dword [edi - 4]
jmp 0x40af6e
mov eax, dword [esp + 0x18]
add eax, 4
mov dword [esp + 0x18], eax
mov eax, dword [eax - 4]
cdq
mov ecx, edx
test ecx, ecx
jg 0x40afac
jl 0x40af7b
test eax, eax
jae 0x40afac
test eax, eax
jne 0x40af96
cmp ecx, 0x80000000
jne 0x40af96
mov dword [esp + 0x14], ecx
mov dword [esp + 0x38], eax
mov cl, 0x2d
jmp 0x40b032
neg eax
adc ecx, 0
neg ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x38], eax
mov cl, 0x2d
jmp 0x40b032
mov dword [esp + 0x38], eax
mov al, byte [esp + 0x37]
mov dword [esp + 0x14], ecx
test al, al
je 0x40afc0
mov cl, 0x2b
jmp 0x40b032
mov cl, byte [esp + 0x10]
neg cl
sbb cl, cl
and cl, 0x20
jmp 0x40b032
cmp byte [esp + 0x12], 0
je 0x40afe3
mov ecx, dword [esp + 0x50]
call fcn.0040aad0
mov dword [esp + 0x14], edx
jmp 0x40b02c
test al, al
je 0x40b002
mov edx, dword [esp + 0x18]
add edx, 8
mov dword [esp + 0x18], edx
mov eax, dword [edx - 8]
mov dword [esp + 0x38], eax
mov eax, dword [edx - 4]
mov dword [esp + 0x14], eax
jmp 0x40b030
mov dword [esp + 0x14], 0
test cl, cl
je 0x40b01e
mov edx, dword [esp + 0x18]
add edx, 4
mov dword [esp + 0x18], edx
mov eax, dword [edx - 4]
jmp 0x40b02c
mov eax, dword [esp + 0x18]
add eax, 4
mov dword [esp + 0x18], eax
mov eax, dword [eax - 4]
mov dword [esp + 0x38], eax
xor cl, cl
mov edx, dword [esp + 0x38]
mov eax, edx
or eax, dword [esp + 0x14]
mov byte [esp + 0x10], cl
jne 0x40b046
mov byte [esp + 0x22], al
mov al, byte [esp + 0x36]
test al, al
je 0x40b064
xor eax, eax
test cl, cl
mov ecx, dword [esp + 0x1c]
setne al
sub ecx, eax
cmp esi, ecx
cmovl esi, ecx
mov dword [esp + 0x24], esi
cmp esi, 0x3c
jge 0x40b07f
mov edi, 0x46
lea eax, [esp + 0x80]
mov dword [esp + 0x30], edi
mov dword [esp + 0x54], eax
jmp 0x40b0a5
lea edi, [esi + 0xa]
push edi
mov dword [esp + 0x34], edi
call fcn.0040a330
mov ecx, eax
add esp, 4
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x54], eax
test ecx, ecx
je 0x40ba63
mov edx, dword [esp + 0x38]
dec edi
add edi, eax
cmp byte [esp + 0x11], 0x10
jne 0x40b10a
push 0
push 0xa
push dword [esp + 0x1c]
push edx
call fcn.004a9c90
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x6c], eax
lea eax, [eax + eax*4]
add eax, eax
sub ecx, eax
mov dword [esp + 0x64], ecx
cmp ecx, 4
jge 0x40b0ec
push 0
push 0xa
push edx
push dword [esp + 0x78]
call fcn.004b47f0
cmp eax, 1
jne 0x40b0f0
test edx, edx
jne 0x40b0f0
xor ecx, ecx
jmp 0x40b0f4
mov ecx, dword [esp + 0x64]
mov al, byte [ecx*2 + 0x4cbfd5]
mov byte [edi - 1], al
mov al, byte [ecx*2 + str.thstndrd]
sub edi, 2
mov byte [edi], al
mov ecx, dword [esp + 0x44]
mov esi, dword [esp + 0x38]
movzx eax, byte [ecx + 4]
add eax, 0x4ce2a0
mov dword [esp + 0x58], eax
movzx eax, byte [ecx + 1]
cdq
mov ecx, eax
mov eax, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x64], eax
push eax
push ecx
push edx
push esi
dec edi
call fcn.004b0670
mov esi, eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x3c], ebx
mov al, byte [ecx + eax]
mov ecx, dword [esp + 0x6c]
mov byte [edi], al
mov eax, dword [esp + 0x64]
test edx, edx
ja 0x40b134
jb 0x40b15f
test esi, esi
jne 0x40b134
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x54]
sub eax, edx
sub eax, dword [esp + 0x30]
mov dword [esp + 0x14], edi
inc eax
add eax, edi
test eax, eax
jle 0x40b185
dec edi
dec eax
mov byte [edi], 0x30
test eax, eax
jg 0x40b178
mov dword [esp + 0x14], edi
mov al, byte [esp + 0x10]
test al, al
je 0x40b194
dec edi
mov dword [esp + 0x14], edi
mov byte [edi], al
cmp byte [esp + 0x22], 0
je 0x40b1c4
mov eax, dword [esp + 0x44]
mov al, byte [eax + 5]
test al, al
je 0x40b1c4
movzx eax, al
add eax, 0x4ce154
mov cl, byte [eax]
test cl, cl
je 0x40b1c4
dec edi
lea eax, [eax + 1]
mov byte [edi], cl
mov cl, byte [eax]
test cl, cl
jne 0x40b1b4
mov dword [esp + 0x14], edi
mov esi, dword [esp + 0x30]
sub edx, edi
dec esi
add esi, edx
jmp 0x40bb6e
cmp byte [esp + 0x12], cl
je 0x40b1eb
mov ecx, dword [esp + 0x50]
call fcn.0040ab50
mov dl, byte [esp + 0x11]
movapd xmm1, xmm0
jmp 0x40b1fb
mov eax, dword [esp + 0x18]
add eax, 8
mov dword [esp + 0x18], eax
movsd xmm1, qword [eax - 8]
test esi, esi
mov eax, 6
cmovs esi, eax
xorps xmm3, xmm3
comisd xmm3, xmm1
movsd qword [esp + 0x58], xmm1
mov dword [esp + 0x24], esi
jbe 0x40b22d
xorpd xmm1, xmmword [0x4dbda0]
movsd qword [esp + 0x58], xmm1
mov byte [esp + 0x10], 0x2d
jmp 0x40b24a
mov al, byte [esp + 0x37]
test al, al
je 0x40b23c
mov byte [esp + 0x10], 0x2b
jmp 0x40b24a
mov al, byte [esp + 0x10]
neg al
sbb al, al
and al, 0x20
mov byte [esp + 0x10], al
cmp dl, 4
jne 0x40b258
test esi, esi
jle 0x40b258
dec esi
mov dword [esp + 0x24], esi
movsd xmm2, qword [0x4dbc58]
movsd xmm4, qword [0x4dbc50]
mov ecx, esi
cmp esi, 8
jl 0x40b2a7
lea edx, [esi - 8]
shr edx, 3
inc edx
lea eax, [edx*8]
sub ecx, eax
nop
mulsd xmm2, xmm4
mulsd xmm2, xmm4
mulsd xmm2, xmm4
mulsd xmm2, xmm4
mulsd xmm2, xmm4
mulsd xmm2, xmm4
mulsd xmm2, xmm4
mulsd xmm2, xmm4
dec edx
jne 0x40b280
mov dl, byte [esp + 0x11]
test ecx, ecx
jle 0x40b2b9
jmp 0x40b2b0
dec ecx
mulsd xmm2, xmm4
test ecx, ecx
jg 0x40b2b0
cmp dl, 2
jne 0x40b2cc
movapd xmm0, xmm2
addsd xmm1, xmm0
movsd qword [esp + 0x58], xmm1
movsd qword [esp + 0x70], xmm1
movsd xmm0, qword [esp + 0x70]
movsd qword [esp + 0x78], xmm0
movsd xmm0, qword [esp + 0x70]
xor ecx, ecx
ucomisd xmm0, qword [esp + 0x78]
mov dword [esp + 0x38], ecx
lahf
test ah, 0x44
jnp 0x40b307
mov edi, 0x4d48ac
mov dword [esp + 0x14], edi
lea esi, [ecx + 3]
jmp 0x40bb6e
comisd xmm1, xmm3
jbe 0x40b493
movsd xmm5, qword [0x4dbd28]
comisd xmm1, xmm5
movsd xmm7, qword [0x4dbc60]
movapd xmm3, xmm7
jb 0x40b351
jmp 0x40b330
cmp ecx, 0x15e
jg 0x40b34d
mulsd xmm3, xmm5
add ecx, 0x64
movapd xmm0, xmm3
mulsd xmm0, xmm5
comisd xmm1, xmm0
jae 0x40b330
mov dword [esp + 0x38], ecx
movsd xmm5, qword [0x4dbd18]
movapd xmm0, xmm3
mulsd xmm0, xmm5
comisd xmm1, xmm0
jb 0x40b384
cmp ecx, 0x15e
jg 0x40b380
movapd xmm3, xmm0
mulsd xmm0, xmm5
add ecx, 0x40
comisd xmm1, xmm0
jae 0x40b367
mov dword [esp + 0x38], ecx
movsd xmm6, qword [0x4dbce8]
movapd xmm0, xmm3
mulsd xmm0, xmm6
comisd xmm1, xmm0
jb 0x40b3bd
lea ebx, [ebx]
cmp ecx, 0x15e
jg 0x40b3b9
movapd xmm3, xmm0
mulsd xmm0, xmm6
add ecx, 8
comisd xmm1, xmm0
jae 0x40b3a0
mov dword [esp + 0x38], ecx
movsd xmm5, qword [0x4dbc70]
movapd xmm0, xmm3
mulsd xmm0, xmm5
comisd xmm1, xmm0
jb 0x40b3ee
cmp ecx, 0x15e
jg 0x40b3ea
movapd xmm3, xmm0
mulsd xmm0, xmm5
inc ecx
comisd xmm1, xmm0
jae 0x40b3d3
mov dword [esp + 0x38], ecx
divsd xmm1, xmm3
movsd xmm0, qword [0x4dbc48]
comisd xmm0, xmm1
movsd qword [esp + 0x58], xmm1
jbe 0x40b427
jmp 0x40b410
mulsd xmm1, xmm6
sub ecx, 8
comisd xmm0, xmm1
ja 0x40b410
mov dword [esp + 0x38], ecx
movsd qword [esp + 0x58], xmm1
comisd xmm7, xmm1
jbe 0x40b445
lea ecx, [ecx]
mulsd xmm1, xmm5
dec ecx
comisd xmm7, xmm1
ja 0x40b430
mov dword [esp + 0x38], ecx
movsd qword [esp + 0x58], xmm1
cmp ecx, 0x15e
jle 0x40b49b
mov al, byte [esp + 0x10]
cmp al, 0x2d
jne 0x40b45c
mov edi, str._Inf
jmp 0x40b46b
cmp al, 0x2b
mov edi, str.Inf
mov eax, 0x4d48c0
cmovne edi, eax
mov dword [esp + 0x14], edi
mov esi, edi
test edi, edi
je 0x40bb6c
cmp byte [edi], 0
je 0x40b486
mov edi, edi
inc esi
cmp byte [esi], 0
jne 0x40b480
sub esi, edi
and esi, 0x3fffffff
jmp 0x40bb6e
movsd xmm5, qword [0x4dbc70]
lea esi, [esp + 0x80]
cmp dl, 2
je 0x40b4c6
addsd xmm1, xmm2
comisd xmm1, xmm5
movsd qword [esp + 0x58], xmm1
jb 0x40b4c6
mulsd xmm1, xmm4
inc ecx
mov dword [esp + 0x38], ecx
movsd qword [esp + 0x58], xmm1
cmp dl, 4
jne 0x40b4f6
cmp byte [esp + 0x22], 0
mov edx, dword [esp + 0x24]
sete byte [esp + 0x23]
cmp ecx, 0xfffffffc
jl 0x40b4ef
cmp ecx, edx
jg 0x40b4ef
sub edx, ecx
mov dword [esp + 0x24], edx
mov byte [esp + 0x11], 2
jmp 0x40b509
mov byte [esp + 0x11], 3
jmp 0x40b507
mov dh, byte [esp + 0x2f]
mov byte [esp + 0x23], dh
cmp dl, 3
mov edx, dword [esp + 0x24]
jne 0x40b509
xor ecx, ecx
xor eax, eax
test ecx, ecx
cmovg eax, ecx
add eax, edx
add eax, dword [esp + 0x1c]
mov dword [esp + 0x30], ecx
cmp eax, 0x37
jle 0x40b539
add eax, 0xf
push eax
call fcn.0040a330
add esp, 4
mov dword [esp + 0x4c], eax
mov esi, eax
test eax, eax
je 0x40ba63
mov cl, byte [esp + 0x2f]
movzx eax, cl
mov edi, esi
lea eax, [eax + eax*4]
mov dword [esp + 0x14], edi
lea edx, [eax*2 + 0x10]
mov eax, dword [esp + 0x24]
test eax, eax
setg byte [esp + 0x13]
or byte [esp + 0x13], cl
mov cl, byte [esp + 0x22]
or byte [esp + 0x13], cl
cmp byte [esp + 0x10], 0
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x54], edx
je 0x40b581
mov cl, byte [esp + 0x10]
mov byte [esi], cl
mov ecx, dword [esp + 0x30]
inc esi
movsd xmm1, qword [esp + 0x58]
movsd xmm2, qword [0x4dbc70]
test ecx, ecx
jns 0x40b5a0
mov byte [esi], 0x30
inc esi
jmp 0x40b5d2
test edx, edx
jg 0x40b5a8
mov cl, 0x30
jmp 0x40b5c0
cvttsd2si ecx, xmm1
dec edx
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
add cl, 0x30
subsd xmm1, xmm0
mulsd xmm1, xmm2
mov byte [esi], cl
mov ecx, dword [esp + 0x30]
inc esi
dec ecx
mov dword [esp + 0x30], ecx
jns 0x40b5a0
mov dword [esp + 0x54], edx
cmp byte [esp + 0x13], 0
je 0x40b5dd
mov byte [esi], 0x2e
inc esi
inc ecx
jns 0x40b60d
neg ecx
mov dword [esp + 0x30], ecx
mov edx, ecx
shr ecx, 2
mov edi, esi
mov eax, 0x30303030
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov ecx, edx
mov edx, dword [esp + 0x54]
add esi, ecx
sub eax, ecx
test eax, eax
jle 0x40b639
dec eax
test edx, edx
jg 0x40b61a
mov cl, 0x30
jmp 0x40b632
cvttsd2si ecx, xmm1
dec edx
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
add cl, 0x30
subsd xmm1, xmm0
mulsd xmm1, xmm2
mov byte [esi], cl
inc esi
test eax, eax
jg 0x40b611
cmp byte [esp + 0x23], 0
je 0x40b675
cmp byte [esp + 0x13], 0
je 0x40b675
cmp byte [esi - 1], 0x30
lea eax, [esi - 1]
jne 0x40b65d
mov esi, eax
lea eax, [esi - 1]
mov byte [esi], 0
cmp byte [eax], 0x30
je 0x40b650
cmp byte [esi - 1], 0x2e
jne 0x40b675
mov dh, byte [esp + 0x2f]
test dh, dh
je 0x40b671
mov byte [esi], 0x30
inc esi
jmp 0x40b675
dec esi
mov byte [esi], 0
cmp byte [esp + 0x11], 3
jne 0x40b707
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x38]
movzx eax, byte [eax + 4]
mov al, byte [eax + 0x4ce2a0]
mov byte [esi], al
test edx, edx
jns 0x40b6a7
mov byte [esi + 1], 0x2d
add esi, 2
neg edx
mov dword [esp + 0x38], edx
jmp 0x40b6ae
mov byte [esi + 1], 0x2b
add esi, 2
cmp edx, 0x64
jl 0x40b6d8
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [esp + 0x38]
mov al, cl
imul ecx, ecx, 0xffffff9c
add al, 0x30
mov byte [esi], al
inc esi
add edx, ecx
mov dword [esp + 0x38], edx
mov eax, 0x66666667
imul edx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov al, cl
add al, 0x30
mov byte [esi], al
mov al, cl
shl cl, 2
add al, cl
mov ecx, dword [esp + 0x38]
add al, al
sub cl, al
add cl, 0x30
mov byte [esi + 1], cl
add esi, 2
mov al, byte [esp + 0x36]
mov byte [esi], 0
sub esi, edi
test al, al
je 0x40bb6e
mov cl, byte [esp + 0xf]
mov eax, dword [esp + 0x1c]
test cl, cl
jne 0x40bb76
cmp esi, eax
jge 0x40bb76
mov edx, eax
sub edx, esi
mov esi, eax
mov ecx, esi
cmp esi, edx
jl 0x40b74f
mov esi, edi
sub esi, edx
mov al, byte [esi + ecx]
mov byte [ecx + edi], al
dec ecx
cmp ecx, edx
jge 0x40b740
mov esi, dword [esp + 0x1c]
xor eax, eax
cmp byte [esp + 0x10], al
setne al
test edx, edx
je 0x40bb6e
add edi, eax
mov ecx, edx
shr ecx, 2
mov eax, 0x30303030
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x14]
jmp 0x40bb6e
cmp byte [esp + 0x12], cl
jne 0x40b79b
mov eax, dword [esp + 0x18]
add eax, 4
mov dword [esp + 0x18], eax
mov ecx, dword [eax - 4]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 0xc]
mov dword [ecx], eax
xor esi, esi
xor eax, eax
jmp 0x40bb72
lea edi, [esp + 0x80]
mov byte [esp + 0x80], 0x25
mov dword [esp + 0x14], edi
mov esi, 1
jmp 0x40bb6e
cmp byte [esp + 0x12], cl
je 0x40b7f2
mov edi, dword [esp + 0x50]
mov edx, dword [edi + 4]
cmp dword [edi], edx
jle 0x40b7ee
mov eax, dword [edi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dl, 1
mov dword [edi + 4], eax
call fcn.00427790
test eax, eax
je 0x40b7ee
movsx eax, byte [eax]
jmp 0x40b800
xor eax, eax
jmp 0x40b800
mov eax, dword [esp + 0x18]
add eax, 4
mov dword [esp + 0x18], eax
mov eax, dword [eax - 4]
mov byte [esp + 0x80], al
test esi, esi
js 0x40b845
cmp esi, 1
jle 0x40b84a
movzx eax, al
imul eax, eax, 0x1010101
lea ecx, [esi - 1]
mov esi, ecx
shr ecx, 2
lea edi, [esp + 0x81]
rep stosd dword es:[edi], eax
mov ecx, esi
mov esi, dword [esp + 0x24]
and ecx, 3
rep stosb byte es:[edi], al
lea edi, [esp + 0x80]
mov dword [esp + 0x14], edi
jmp 0x40bb6e
mov esi, 1
lea edi, [esp + 0x80]
mov dword [esp + 0x14], edi
jmp 0x40bb6e
mov dh, byte [esp + 0x12]
test dh, dh
je 0x40b894
mov edi, dword [esp + 0x50]
mov edx, dword [edi + 4]
cmp dword [edi], edx
jle 0x40b8aa
mov eax, dword [edi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dl, 1
mov dword [edi + 4], eax
call fcn.00427790
mov dl, byte [esp + 0x11]
mov ecx, dword [esp + 0x4c]
mov dh, byte [esp + 0x12]
mov edi, eax
mov dword [esp + 0x14], eax
jmp 0x40b8a6
mov eax, dword [esp + 0x18]
add eax, 4
mov dword [esp + 0x18], eax
mov edi, dword [eax - 4]
mov dword [esp + 0x14], edi
test edi, edi
jne 0x40b8b5
mov edi, 0x4ce328
mov dword [esp + 0x14], edi
jmp 0x40b8c3
cmp dl, 7
jne 0x40b8c3
test dh, dh
cmove ecx, edi
mov dword [esp + 0x4c], ecx
test esi, esi
js 0x40b8e9
mov edx, dword [esp + 0x24]
xor esi, esi
test edx, edx
jle 0x40bb6e
cmp byte [esi + edi], 0
je 0x40bb6e
inc esi
cmp esi, edx
jl 0x40b8d5
jmp 0x40bb6e
mov esi, edi
test edi, edi
je 0x40bb6c
cmp byte [edi], 0
je 0x40b486
lea esp, [esp]
inc esi
cmp byte [esi], 0
jne 0x40b900
sub esi, edi
and esi, 0x3fffffff
jmp 0x40bb6e
cmp dl, 0xf
mov eax, 0x27
mov ecx, 0x22
cmove eax, ecx
cmp byte [esp + 0x12], 0
mov dword [esp + 0x38], eax
je 0x40b95a
mov edi, dword [esp + 0x50]
mov edx, dword [edi + 4]
cmp dword [edi], edx
jg 0x40b941
mov dl, byte [esp + 0x11]
xor eax, eax
jmp 0x40b968
mov eax, dword [edi + 8]
mov ecx, dword [eax + edx*4]
lea eax, [edx + 1]
mov dl, 1
mov dword [edi + 4], eax
call fcn.00427790
mov dl, byte [esp + 0x11]
jmp 0x40b968
mov eax, dword [esp + 0x18]
add eax, 4
mov dword [esp + 0x18], eax
mov eax, dword [eax - 4]
xor ecx, ecx
test eax, eax
sete cl
mov dword [esp + 0x44], eax
mov dword [esp + 0x58], ecx
test ecx, ecx
je 0x40b98f
mov eax, str.NULL
cmp dl, 0xb
mov ecx, str._NULL_
cmovne eax, ecx
mov dword [esp + 0x44], eax
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x30], edx
test esi, esi
je 0x40b9ba
jmp 0x40b9a0
mov al, byte [edx + eax]
test al, al
je 0x40b9b6
cmp al, byte [esp + 0x38]
jne 0x40b9ae
inc ecx
mov eax, dword [esp + 0x44]
inc edx
dec esi
jne 0x40b9a0
mov dword [esp + 0x30], edx
cmp dword [esp + 0x58], 0
jne 0x40b9cf
cmp byte [esp + 0x11], 0xb
jne 0x40b9cf
mov eax, 1
jmp 0x40b9d1
xor eax, eax
lea esi, [eax*2 + 1]
add esi, edx
add esi, ecx
mov dword [esp + 0x24], eax
cmp esi, 0x46
jle 0x40ba87
lea eax, [esi - 1]
cmp eax, 0x7ffffefe
ja 0x40ba51
cmp dword [0x4e5c08], 0
je 0x40ba37
mov eax, dword [0x4e7600]
test eax, eax
je 0x40ba0f
push eax
call dword [0x4e5c5c]
add esp, 4
lea edx, [esp + 0x68]
mov ecx, esi
call fcn.0040a240
mov eax, dword [0x4e7600]
test eax, eax
je 0x40ba2d
push eax
call dword [0x4e5c64]
add esp, 4
mov edi, dword [esp + 0x68]
mov edx, dword [esp + 0x30]
jmp 0x40ba57
push esi
call dword [0x4e5c2c]
mov edx, dword [esp + 0x34]
mov edi, eax
add esp, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x68], edi
jmp 0x40ba5b
xor edi, edi
mov dword [esp + 0x68], edi
mov dword [esp + 0x14], edi
mov dword [esp + 0x4c], edi
test edi, edi
jne 0x40ba92
mov eax, dword [esp + 0x28]
mov byte [eax + 0x19], 1
mov dword [eax + 0x10], 0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xc0]
xor ecx, esp
call fcn.004a2eda
mov esp, ebp
pop ebp
ret
lea edi, [esp + 0x80]
mov dword [esp + 0x14], edi
xor esi, esi
cmp dword [esp + 0x24], esi
je 0x40baa5
mov eax, dword [esp + 0x38]
mov byte [edi], al
mov esi, 1
xor ecx, ecx
test edx, edx
jle 0x40bacb
jmp 0x40bab0
mov eax, dword [esp + 0x44]
inc esi
mov al, byte [ecx + eax]
mov byte [esi + edi - 1], al
cmp al, byte [esp + 0x38]
jne 0x40bac6
mov byte [esi + edi], al
inc esi
inc ecx
cmp ecx, edx
jl 0x40bab0
cmp dword [esp + 0x24], 0
je 0x40bada
mov eax, dword [esp + 0x38]
mov byte [esi + edi], al
inc esi
mov byte [esi + edi], 0
jmp 0x40bb6e
mov eax, dword [esp + 0x18]
add eax, 4
mov dword [esp + 0x18], eax
mov edx, dword [eax - 4]
test edx, edx
je 0x40bb0b
mov eax, dword [edx + 4]
test eax, eax
je 0x40bb0b
mov edx, dword [edx]
mov ecx, dword [esp + 0x28]
push eax
call fcn.0040be60
add esp, 4
xor esi, esi
xor eax, eax
jmp 0x40bb72
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x28]
mov ecx, dword [eax]
add eax, 8
mov dword [esp + 0x18], eax
mov eax, dword [eax - 4]
mov dword [esp + 0x54], ecx
lea eax, [eax + eax*4]
shl eax, 4
mov dword [esp + 0x58], eax
mov edx, dword [eax + ecx + 0xc]
test edx, edx
je 0x40bb5b
mov ecx, esi
call fcn.0040bec0
push 1
mov edx, 0x4d48d4
mov ecx, esi
call fcn.0040be60
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
add esp, 4
mov edx, dword [eax + ecx + 0x10]
mov ecx, esi
call fcn.0040bec0
xor esi, esi
xor eax, eax
jmp 0x40bb72
xor esi, esi
mov eax, dword [esp + 0x1c]
mov cl, byte [esp + 0xf]
sub eax, esi
mov dword [esp + 0x1c], eax
test eax, eax
jle 0x40bbb9
test cl, cl
jne 0x40bbb9
mov ecx, dword [esp + 0x28]
mov edx, eax
mov eax, dword [ecx + 0xc]
add eax, edx
cmp eax, dword [ecx + 0x10]
jl 0x40bb9f
call fcn.0040bd60
mov edx, eax
test edx, edx
jle 0x40bbb9
mov edi, dword [esp + 0x28]
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
dec edx
mov byte [ecx + eax], 0x20
inc dword [edi + 0xc]
test edx, edx
jg 0x40bba3
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0xc]
lea eax, [edx + esi]
cmp eax, dword [ecx + 0x10]
jl 0x40bbf3
mov edx, esi
mov esi, ecx
call fcn.0040bd60
mov dword [esp + 0x58], eax
test eax, eax
jle 0x40bc0c
mov ecx, dword [esi + 8]
add ecx, dword [esi + 0xc]
push eax
push edi
push ecx
call fcn.004a5f50
mov eax, dword [esp + 0x64]
add esp, 0xc
add dword [esi + 0xc], eax
jmp 0x40bc0c
mov eax, dword [ecx + 8]
push esi
add eax, edx
push edi
push eax
call fcn.004a5f50
mov eax, dword [esp + 0x34]
add esp, 0xc
add dword [eax + 0xc], esi
mov esi, eax
mov edx, dword [esp + 0x1c]
test edx, edx
jle 0x40bc44
cmp byte [esp + 0xf], 0
je 0x40bc44
mov eax, dword [esi + 0xc]
add eax, edx
cmp eax, dword [esi + 0x10]
jl 0x40bc32
mov ecx, esi
call fcn.0040bd60
mov edx, eax
test edx, edx
jle 0x40bc44
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 8]
dec edx
mov byte [ecx + eax], 0x20
inc dword [esi + 0xc]
test edx, edx
jg 0x40bc32
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x40bc55
push eax
call fcn.0040a630
add esp, 4
mov edx, dword [esp + 0x48]
inc edx
movsx eax, byte [edx]
test eax, eax
jne 0x40ac50
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xc0]
xor ecx, esp
call fcn.004a2eda
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0xc]
lea eax, [edx + 1]
cmp eax, dword [esi + 0x10]
jl 0x40bcc8
mov edx, 1
mov ecx, esi
call fcn.0040bd60
mov esi, eax
test esi, esi
jle case.default.0x40af00
mov edi, dword [esp + 0x28]
push esi
mov ecx, dword [edi + 8]
add ecx, dword [edi + 0xc]
push 0x4d48a8
push ecx
call fcn.004a5f50
add esp, 0xc
add dword [edi + 0xc], esi
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xc0]
xor ecx, esp
call fcn.004a2eda
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 8]
mov al, byte [0x4d48a8]
mov byte [ecx + edx], al
inc dword [esi + 0xc]
mov ecx, dword [esp + 0xcc]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004a2eda
mov esp, ebp
pop ebp
ret