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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd0
mov edi, dword [ebp + 8]
mov ebx, edx
mov dword [esp], ecx
lea esi, [esp + 0x1c]
push 0x1e
pop edx
mov ecx, esi
call fcn.00435766
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], ebx
and dword [esi + 0x18], 0
mov dword [esp + 4], ebx
mov dword [esi + 0x1c], edi
push 3
pop ecx
call fcn.00435c1c
test edx, edx
je 0x40837f
mov ebx, eax
test eax, eax
js 0x40837f
mov esi, edx
mov ecx, ebx
push 0
call fcn.004354f3
pop ecx
mov ecx, eax
test eax, eax
je 0x408350
mov eax, edx
push 0x28
pop esi
xor edx, edx
div esi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], eax
and dword [esp + 0x74], 0
test edi, edi
je 0x406c13
mov esi, dword [esp + 4]
mov dword [esp + 0x34], 1
mov bl, byte [esi]
mov eax, ebx
add al, 0xf7
cmp al, 0x17
ja 0x406c23
movzx ecx, al
mov eax, 0x80001f
bt eax, ecx
jae 0x406c23
neg edi
push 2
pop ecx
lea edx, [edi + ecx]
cmp edx, 1
je 0x406c13
mov bl, byte [esi + ecx - 1]
mov dword [esp + 0x34], ecx
mov edx, ebx
add dl, 0xf7
cmp dl, 0x17
ja 0x406c23
movzx edx, dl
bt eax, edx
jae 0x406c23
inc ecx
jmp 0x406bee
mov ecx, dword [esp]
xor eax, eax
inc eax
mov dword [ecx + 4], eax
mov dword [ecx], eax
jmp 0x408144
xor eax, eax
lea ecx, [esp + 0x40]
lea edx, [esp + 0x78]
inc eax
or ecx, eax
or edx, eax
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xc8], edx
cmp bl, 0x5b
je 0x406cd2
cmp bl, 0x7b
jne 0x407005
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
cmp ecx, eax
mov dword [esp + 8], eax
je 0x408139
mov edi, dword [esp + 0x30]
lea esi, [ecx + 1]
mov bl, byte [edi + ecx]
mov dword [esp + 0x34], esi
mov eax, ebx
add al, 0xf7
cmp al, 0x17
ja 0x406dc7
movzx eax, al
mov edx, 0x80001f
bt edx, eax
jae 0x406dc7
mov eax, dword [esp + 8]
add ecx, 2
mov esi, ecx
neg eax
lea ecx, [eax + esi]
cmp ecx, 1
je 0x408139
mov bl, byte [edi + esi - 1]
mov dword [esp + 0x34], esi
mov ecx, ebx
add cl, 0xf7
cmp cl, 0x17
ja 0x406dc7
movzx ecx, cl
mov edx, 0x80001f
bt edx, ecx
jae 0x406dc7
inc esi
jmp 0x406c9c
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
cmp eax, edi
je 0x408139
mov ecx, dword [esp + 0x30]
lea esi, [eax + 1]
mov bl, byte [ecx + eax]
mov dword [esp + 0x34], esi
mov bh, bl
add bh, 0xf7
cmp bh, 0x17
ja 0x406d3a
movzx esi, bh
mov edx, 0x80001f
bt edx, esi
jae 0x406d3a
add eax, 2
neg edi
lea esi, [edi + eax]
cmp esi, 1
je 0x408139
mov bl, byte [ecx + eax - 1]
mov dword [esp + 0x34], eax
mov bh, bl
add bh, 0xf7
cmp bh, 0x17
ja 0x406d3a
movzx esi, bh
mov edx, 0x80001f
bt edx, esi
jae 0x406d3a
inc eax
jmp 0x406d0c
cmp bl, 0x5d
je 0x4070a6
cmp dword [esp + 0x74], 0x200
je 0x408188
push 2
pop ecx
call fcn.00435afe
test edx, edx
je 0x40837f
mov esi, eax
test eax, eax
js 0x40837f
mov edi, edx
mov ecx, esi
push 0
call fcn.004354f3
pop ecx
test eax, eax
je 0x408356
mov cl, byte [esp + 0xb2]
mov esi, dword [esp + 0xa0]
mov byte [esp + 0x40], 6
shr edx, 5
mov byte [esi + 2], cl
movzx ecx, word [esp + 0xb0]
mov word [esi], cx
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
and dword [esp + 0x4c], 0
and dword [esp + 0x60], 0
lea ecx, [esp + 0x6c]
lea edx, [esp + 0x40]
call fcn.00437253
jmp 0x406c40
cmp bl, 0x7d
je 0x4070c8
cmp dword [esp + 0x74], 0x200
je 0x408188
push 3
pop ecx
call fcn.00435ae3
test edx, edx
je 0x40837f
test eax, eax
js 0x40837f
mov dword [esp + 4], edi
mov edi, edx
mov dword [esp + 0x14], eax
mov ecx, eax
push 0
call fcn.004354f3
pop ecx
test eax, eax
je 0x40835a
mov ecx, eax
mov eax, edx
xor edx, edx
push 0x58
pop edi
div edi
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xa8], eax
and dword [esp + 0xac], 0
cmp bl, 0x22
jne 0x40819a
mov edx, esi
add dword [esp + 4], esi
lea ecx, [esi + 1]
xor eax, eax
sub edx, dword [esp + 8]
mov ebx, edx
add ebx, eax
je 0x408118
mov edi, dword [esp + 4]
movzx ebx, byte [edi + eax]
lea edi, [ecx + eax]
inc eax
mov dword [esp + 0x34], edi
cmp byte [ebx + 0x45fa3f], 0
jne 0x406e4b
cmp bl, 0x5c
je 0x406e83
cmp bl, 0x22
jne 0x40819a
mov edx, dword [esp + 4]
dec eax
jmp 0x406ea5
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x40]
push esi
call fcn.004377ec
pop eax
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
cmp dword [esp + 0x40], 1
je 0x4081e7
lea ecx, [esp + 0xa4]
lea esi, [esp + 0x40]
mov byte [esp + 0x40], 0
push esi
push eax
call fcn.00437301
pop ecx
pop edx
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
cmp ecx, edx
je 0x408118
mov dword [esp + 4], eax
mov eax, dword [esp + 0x30]
lea edi, [ecx + 1]
mov bl, byte [eax + ecx]
mov dword [esp + 0x34], edi
mov bh, bl
add bh, 0xf7
cmp bh, 0x17
ja 0x406f2a
movzx edi, bh
mov esi, 0x80001f
bt esi, edi
jae 0x406f2a
add ecx, 2
neg edx
lea edi, [edx + ecx]
cmp edi, 1
je 0x408118
mov bl, byte [eax + ecx - 1]
mov dword [esp + 0x34], ecx
mov bh, bl
add bh, 0xf7
cmp bh, 0x17
ja 0x406f2a
movzx edi, bh
mov esi, 0x80001f
bt esi, edi
jae 0x406f2a
inc ecx
jmp 0x406efc
cmp bl, 0x3a
jne 0x40819a
mov ecx, dword [esp + 0xac]
movsd xmm0, qword [esp + 0xa4]
lea edx, [esp + 0xb3]
mov eax, dword [esp + 4]
mov byte [esp + 0x40], 5
mov dword [edx + 8], ecx
movsd qword [edx], xmm0
mov ecx, dword [esp + 0xa0]
lea edx, [esp + 0x40]
movsd xmm1, qword [esp + 0xb7]
movsd xmm0, qword [esp + 0xb0]
movsd qword [ecx + 7], xmm1
movsd qword [ecx], xmm0
lea ecx, [esp + 0x6c]
mov dword [esp + 0x60], eax
call fcn.00437253
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
cmp eax, edi
je 0x408139
mov edx, dword [esp + 0x30]
lea esi, [eax + 1]
mov bl, byte [edx + eax]
mov dword [esp + 0x34], esi
mov bh, bl
add bh, 0xf7
cmp bh, 0x17
ja 0x406c40
movzx esi, bh
mov ecx, 0x80001f
bt ecx, esi
jae 0x406c40
add eax, 2
neg edi
lea esi, [edi + eax]
cmp esi, 1
je 0x408139
mov bl, byte [edx + eax - 1]
mov dword [esp + 0x34], eax
mov bh, bl
add bh, 0xf7
cmp bh, 0x17
ja 0x406c40
movzx esi, bh
mov ecx, 0x80001f
bt ecx, esi
jae 0x406c40
inc eax
jmp 0x406fcf
cmp bl, 0x22
je 0x4070ea
cmp bl, 0x2d
je 0x407136
cmp bl, 0x30
je 0x407187
cmp bl, 0x66
je 0x4072af
cmp bl, 0x6e
je 0x407336
cmp bl, 0x74
jne 0x40739f
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
cmp eax, ecx
je 0x408139
mov edx, dword [esp + 0x30]
lea esi, [eax + 1]
mov bl, byte [edx + eax]
mov dword [esp + 0x34], esi
cmp bl, 0x72
jne 0x40826b
cmp esi, ecx
je 0x408139
mov bl, byte [edx + eax + 1]
lea esi, [eax + 2]
mov dword [esp + 0x34], esi
cmp bl, 0x75
jne 0x40826b
cmp esi, ecx
je 0x408139
mov cl, byte [edx + eax + 2]
add eax, 3
mov dword [esp + 0x34], eax
cmp cl, 0x65
jne 0x40826b
mov word [esp + 0x78], 0x104
jmp 0x407b77
mov dword [esp + 0x7c], 8
and dword [esp + 0x80], 0
and dword [esp + 0x84], 0
mov byte [esp + 0x78], 6
jmp 0x407b77
mov dword [esp + 0x7c], 8
and dword [esp + 0x80], 0
and dword [esp + 0x84], 0
mov byte [esp + 0x78], 5
jmp 0x407b77
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
xor ebx, ebx
lea ecx, [edx + 1]
add esi, edx
mov dword [esp + 4], edx
sub edx, dword [esp + 0x38]
mov eax, edx
add eax, ebx
je 0x408139
movzx eax, byte [esi + ebx]
lea edi, [ecx + ebx]
inc ebx
mov dword [esp + 0x34], edi
cmp byte [eax + 0x45fa3f], 0
jne 0x407101
cmp al, 0x5c
je 0x4076bc
cmp al, 0x22
jne 0x40826b
dec ebx
jmp 0x4076e1
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
cmp esi, eax
mov dword [esp + 0xc], eax
je 0x408139
mov eax, dword [esp + 0x30]
lea ecx, [esi + 1]
mov dword [esp + 0x14], eax
mov al, byte [eax + esi]
mov dword [esp + 0x34], ecx
cmp al, 0x30
jne 0x407423
cmp ecx, dword [esp + 0xc]
mov dl, 1
jne 0x4075a4
mov dword [esp + 8], 0
mov dword [esp + 4], 0
xor edi, edi
jmp 0x4077f5
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x34]
mov cl, 1
cmp edi, eax
mov dword [esp + 0x10], eax
je 0x407418
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], eax
mov al, byte [eax + edi]
cmp al, 0x65
je 0x407553
cmp al, 0x45
je 0x407553
cmp al, 0x2e
jne 0x407418
lea eax, [edi + 1]
cmp eax, dword [esp + 0x10]
mov dword [esp + 0x34], eax
je 0x408139
mov eax, dword [esp + 0xc]
lea ecx, [edi + 2]
mov al, byte [eax + edi + 1]
mov dword [esp + 0x34], ecx
add al, 0xd0
cmp al, 0xa
jae 0x40826b
movzx eax, al
xor ebx, ebx
add edi, 3
neg dword [esp + 0x10]
mov dword [esp + 0x14], eax
xor eax, eax
dec eax
mov esi, eax
mov eax, dword [esp + 0x10]
add eax, edi
cmp eax, 1
je 0x40796c
mov eax, dword [esp + 0xc]
mov cl, byte [eax + edi - 1]
mov eax, ecx
add al, 0xd0
cmp al, 0xa
jae 0x40794d
mov dword [esp + 4], esi
push 0xc
pop ecx
mov esi, dword [esp + 0x14]
mov edx, 0x8000000
movzx eax, al
mov dword [esp + 0x34], edi
mov dword [esp + 8], eax
cmp esi, ecx
mov ecx, ebx
sbb ecx, edx
jae 0x407260
mov eax, esi
push 0xa
pop ecx
imul ebx, ebx, 0xa
mov esi, dword [esp + 4]
mul ecx
add eax, dword [esp + 8]
adc ebx, edx
dec esi
mov dword [esp + 0x14], eax
jmp 0x4072a9
mov eax, ebx
mov dword [esp + 0x3c], ebx
push 0xa
pop ecx
mul ecx
mov edx, ecx
mov ecx, eax
mov eax, esi
seto bl
mul edx
add edx, ecx
setb cl
add eax, dword [esp + 8]
adc edx, 0
setb ch
or ch, cl
or ch, bl
mov ebx, dword [esp + 4]
mov cl, ch
xor cl, 1
movzx esi, cl
sub ebx, esi
test ch, ch
mov esi, ebx
jne 0x4072a5
mov dword [esp + 0x3c], edx
mov dword [esp + 0x14], eax
mov ebx, dword [esp + 0x3c]
inc edi
jmp 0x4071ff
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
cmp eax, ecx
je 0x408139
mov edx, dword [esp + 0x30]
lea esi, [eax + 1]
mov bl, byte [edx + eax]
mov dword [esp + 0x34], esi
cmp bl, 0x61
jne 0x40826b
cmp esi, ecx
je 0x408139
mov bl, byte [edx + eax + 1]
lea esi, [eax + 2]
mov dword [esp + 0x34], esi
cmp bl, 0x6c
jne 0x40826b
cmp esi, ecx
je 0x408139
mov bl, byte [edx + eax + 2]
lea esi, [eax + 3]
mov dword [esp + 0x34], esi
cmp bl, 0x73
jne 0x40826b
cmp esi, ecx
je 0x408139
mov cl, byte [edx + eax + 3]
add eax, 4
mov dword [esp + 0x34], eax
cmp cl, 0x65
jne 0x40826b
mov word [esp + 0x78], 4
jmp 0x407b77
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
cmp eax, ecx
je 0x408139
mov edx, dword [esp + 0x30]
lea esi, [eax + 1]
mov bl, byte [edx + eax]
mov dword [esp + 0x34], esi
cmp bl, 0x75
jne 0x40826b
cmp esi, ecx
je 0x408139
mov bl, byte [edx + eax + 1]
lea esi, [eax + 2]
mov dword [esp + 0x34], esi
cmp bl, 0x6c
jne 0x40826b
cmp esi, ecx
je 0x408139
mov cl, byte [edx + eax + 2]
add eax, 3
mov dword [esp + 0x34], eax
cmp cl, 0x6c
jne 0x40826b
mov byte [esp + 0x78], 0
jmp 0x407b77
mov eax, ebx
add al, 0xcf
cmp al, 9
jae 0x40826b
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
add bl, 0xd0
xor esi, esi
movzx ebx, bl
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
push 0xc
pop eax
mov ecx, 0x8000000
add eax, 0xffffffff
adc ecx, 0xffffffff
cmp eax, ebx
sbb ecx, esi
jb 0x4074b1
mov edi, dword [esp + 0x34]
mov cl, 1
cmp edi, dword [esp + 4]
je 0x4074eb
mov eax, dword [esp + 8]
mov al, byte [eax + edi]
mov ch, al
add ch, 0xd0
cmp ch, 0xa
jae 0x4074f2
inc edi
mov eax, ebx
mov dword [esp + 0x34], edi
push 0xa
pop edx
movzx ebx, ch
imul esi, esi, 0xa
mul edx
add ebx, eax
adc esi, edx
jmp 0x4073c3
xor esi, esi
xor edi, edi
xor ebx, ebx
jmp 0x407972
mov ecx, eax
add cl, 0xcf
cmp cl, 9
jae 0x40826b
mov ecx, dword [esp + 0xc]
add al, 0xd0
xor edi, edi
movzx ebx, al
neg ecx
mov dword [esp + 0x10], ecx
lea ecx, [esi + 3]
add esi, 4
push 0xc
pop eax
mov edx, 0x8000000
add eax, 0xffffffff
adc edx, 0xffffffff
cmp eax, ebx
sbb edx, edi
jb 0x407774
mov eax, dword [esp + 0x10]
mov dl, 1
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
add eax, ecx
cmp eax, 2
je 0x407180
mov eax, dword [esp + 0x14]
mov al, byte [eax + ecx - 2]
mov bh, al
add bh, 0xd0
cmp bh, 0xa
jae 0x407787
lea eax, [ecx - 1]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 8]
push 0xa
pop edx
mov edi, dword [esp + 4]
movzx ebx, bh
mul edx
imul edi, edi, 0xa
add ebx, eax
adc edi, edx
inc ecx
inc esi
jmp 0x407448
lea ecx, [esp + 0x40]
lea edx, [esp + 0x1c]
push esi
push ebx
call fcn.00437c36
pop eax
pop ecx
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x48]
movzx edi, word [esp + 0x50]
mov cl, byte [esp + 0x52]
mov ch, byte [esp + 0x53]
cmp dword [esp + 0x40], 1
je 0x40827c
mov edx, dword [esp + 0x54]
jmp 0x407b47
xor edi, edi
jmp 0x407b47
cmp al, 0x2e
je 0x40783a
cmp al, 0x45
je 0x407506
cmp al, 0x65
jne 0x40793b
inc edi
lea ecx, [esp + 0x40]
lea edx, [esp + 0x1c]
mov dword [esp + 0x34], edi
push 0
push esi
push ebx
call fcn.00437b00
add esp, 0xc
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x48]
movzx edi, word [esp + 0x50]
mov cl, byte [esp + 0x52]
mov ch, byte [esp + 0x53]
cmp dword [esp + 0x40], 1
je 0x40827c
mov edx, dword [esp + 0x54]
mov byte [esp + 0x6b], ch
mov dword [esp + 0xc0], edx
jmp 0x407b47
inc edi
lea ecx, [esp + 0x40]
lea edx, [esp + 0x1c]
mov dword [esp + 0x34], edi
push 0
push 0
push 0
call fcn.00437b00
add esp, 0xc
mov al, byte [esp + 0x53]
mov ebx, dword [esp + 0x4c]
mov edi, dword [esp + 0x48]
movzx esi, word [esp + 0x50]
mov dl, byte [esp + 0x52]
cmp dword [esp + 0x40], 1
mov byte [esp + 0x1b], al
je 0x4082c7
mov eax, dword [esp + 0x54]
mov ecx, edx
mov dword [esp + 0xc4], eax
jmp 0x407972
mov eax, dword [esp + 0x14]
mov al, byte [eax + ecx]
cmp al, 0x65
je 0x4077b4
cmp al, 0x45
je 0x4077b4
cmp al, 0x2e
jne 0x407170
lea eax, [esi + 2]
cmp eax, dword [esp + 0xc]
mov dword [esp + 0x34], eax
je 0x408139
mov eax, dword [esp + 0x14]
lea ecx, [esi + 3]
mov al, byte [eax + esi + 2]
mov dword [esp + 0x34], ecx
add al, 0xd0
cmp al, 0xa
jae 0x40826b
movzx eax, al
add esi, 4
neg dword [esp + 0xc]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
xor eax, eax
dec eax
mov edi, eax
mov eax, dword [esp + 0xc]
add eax, esi
cmp eax, 1
je 0x4077f5
mov eax, dword [esp + 0x14]
mov cl, byte [eax + esi - 1]
mov eax, ecx
add al, 0xd0
cmp al, 0xa
jae 0x407b00
mov dword [esp + 0x3c], edi
push 0xc
pop ecx
mov ebx, dword [esp + 8]
mov edi, dword [esp + 4]
mov edx, 0x8000000
movzx eax, al
mov dword [esp + 0x34], esi
mov dword [esp + 0x10], eax
cmp ebx, ecx
mov ecx, edi
sbb ecx, edx
jae 0x407671
mov eax, ebx
push 0xa
pop ecx
imul edi, edi, 0xa
mul ecx
add eax, dword [esp + 0x10]
adc edi, edx
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov edi, dword [esp + 0x3c]
dec edi
jmp 0x4076b4
mov eax, edi
push 0xa
pop edi
mul edi
mov ecx, eax
mov eax, ebx
seto byte [esp + 0x9c]
mul edi
add edx, ecx
setb ch
add eax, dword [esp + 0x10]
adc edx, 0
setb cl
or cl, ch
or cl, byte [esp + 0x9c]
jne 0x4076a8
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov edi, dword [esp + 0x3c]
xor cl, 1
movzx eax, cl
sub edi, eax
inc esi
mov dl, 1
jmp 0x407608
lea ecx, [esp + 0x40]
lea edx, [esp + 0x1c]
push dword [esp + 4]
call fcn.004377ec
pop eax
mov esi, dword [esp + 0x44]
mov ebx, dword [esp + 0x48]
cmp dword [esp + 0x40], 1
je 0x4082f0
cmp ebx, 0x1f
jae 0x407746
mov byte [esp + 0x40], bl
push 0x1e
pop eax
lea ecx, [esp + ebx + 0x41]
sub eax, ebx
push eax
push 0
push ecx
call fcn.0044b84c
add esp, 0xc
push ebx
push esi
push dword [esp + 0xa8]
call fcn.0044b85c
add esp, 0xc
movsd xmm1, qword [esp + 0x48]
mov eax, dword [esp + 0xc8]
movsd xmm0, qword [esp + 0x40]
movsd xmm2, qword [esp + 0x50]
movsd qword [eax + 8], xmm1
movsd xmm1, qword [esp + 0x57]
movsd qword [eax + 0x10], xmm2
movsd qword [eax], xmm0
movsd qword [eax + 0x17], xmm1
mov al, 1
jmp 0x40776b
lea ecx, [esp + 0x40]
mov edx, esi
push ebx
call fcn.0043571c
pop eax
mov eax, dword [esp + 0x48]
movsd xmm0, qword [esp + 0x40]
lea ecx, [esp + 0x78]
mov dword [ecx + 0xc], eax
movsd qword [ecx + 4], xmm0
mov al, 2
mov byte [esp + 0x78], al
jmp 0x407b77
lea ecx, [esp + 0x40]
lea edx, [esp + 0x1c]
push edi
push ebx
call fcn.00437c36
pop eax
pop ecx
jmp 0x4077d1
cmp al, 0x2e
je 0x4079ad
cmp al, 0x45
je 0x40779b
cmp al, 0x65
jne 0x407180
dec ecx
lea edx, [esp + 0x1c]
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x40]
push 0
push dword [esp + 8]
push dword [esp + 0x10]
jmp 0x4077c9
add esi, 2
lea ecx, [esp + 0x40]
lea edx, [esp + 0x1c]
mov dword [esp + 0x34], esi
push 0
push 0
push 0
call fcn.00437b00
add esp, 0xc
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
movzx edi, word [esp + 0x50]
mov dl, byte [esp + 0x52]
cmp dword [esp + 0x40], 1
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
je 0x4082a5
mov eax, dword [esp + 8]
mov esi, dword [esp + 4]
xor dl, 1
mov bl, byte [esp + 0xb4]
lea ecx, [esp + 0x78]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], esi
mov word [esp + 0x88], di
mov byte [esp + 0x8a], dl
mov edx, dword [esp + 0xb0]
mov byte [ecx + 0x17], bl
mov dword [ecx + 0x13], edx
jmp 0x407b72
lea eax, [edi + 1]
cmp eax, dword [esp + 4]
mov dword [esp + 0x34], eax
je 0x408139
mov eax, dword [esp + 8]
mov ch, byte [eax + edi + 1]
lea eax, [edi + 2]
mov dword [esp + 0x34], eax
add ch, 0xd0
cmp ch, 0xa
jae 0x40826b
mov eax, ebx
push 0xa
pop edx
movzx ebx, ch
imul esi, esi, 0xa
mul edx
add ebx, eax
adc esi, edx
neg dword [esp + 4]
add edi, 3
xor eax, eax
dec eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 4]
add eax, edi
cmp eax, 1
je 0x407aa5
mov eax, dword [esp + 8]
mov dword [esp + 0x14], esi
mov dl, byte [eax + edi - 1]
mov eax, edx
add al, 0xd0
cmp al, 0xa
jae 0x407ab2
push 0xc
pop edx
movzx eax, al
mov dword [esp + 0x34], edi
mov dword [esp + 0x10], eax
cmp ebx, edx
mov edx, esi
mov esi, 0x8000000
sbb edx, esi
jae 0x4078e3
mov eax, ebx
push 0xa
pop edx
mov esi, dword [esp + 0x14]
mul edx
imul esi, esi, 0xa
mov ebx, eax
add ebx, dword [esp + 0x10]
adc esi, edx
dec dword [esp + 0xc]
jmp 0x407935
mov esi, dword [esp + 0x14]
mov eax, esi
push 0xa
pop edx
mul edx
mov dword [esp + 0x9c], eax
mov eax, ebx
seto byte [esp + 0x3c]
push 0xa
pop edx
mul edx
add edx, dword [esp + 0x9c]
setb byte [esp + 0x9c]
add eax, dword [esp + 0x10]
adc edx, 0
setb ch
or ch, byte [esp + 0x9c]
or ch, byte [esp + 0x3c]
jne 0x40792b
mov esi, edx
mov ebx, eax
xor ch, 1
movzx eax, ch
sub dword [esp + 0xc], eax
inc edi
jmp 0x407885
mov ch, byte [esp + 0x6b]
mov edx, dword [esp + 0xc0]
xor edi, edi
jmp 0x407b47
or cl, 0x20
cmp cl, 0x65
jne 0x40796c
lea ecx, [esp + 0x40]
lea edx, [esp + 0x1c]
mov dword [esp + 0x34], edi
push esi
push ebx
push dword [esp + 0x1c]
jmp 0x407566
mov edi, dword [esp + 0x14]
mov cl, 1
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], ebx
mov word [esp + 0x88], si
mov byte [esp + 0x8a], cl
mov al, byte [esp + 0x1b]
mov ecx, dword [esp + 0xc4]
mov byte [esp + 0x8b], al
mov dword [esp + 0x8c], ecx
jmp 0x407b72
mov eax, ecx
lea edx, [ecx - 1]
sub eax, dword [esp + 0xc]
mov dword [esp + 0x34], edx
cmp eax, 1
je 0x408139
mov eax, dword [esp + 0x14]
mov bh, byte [eax + ecx - 1]
mov dword [esp + 0x34], ecx
add bh, 0xd0
cmp bh, 0xa
jae 0x40826b
mov eax, dword [esp + 8]
push 0xa
pop ecx
movzx edi, bh
mul ecx
mov ecx, dword [esp + 4]
imul ecx, ecx, 0xa
add edi, eax
adc ecx, edx
xor eax, eax
mov dword [esp + 8], edi
dec eax
mov dword [esp + 4], ecx
mov edi, eax
mov eax, dword [esp + 0x10]
add eax, esi
cmp eax, 1
je 0x408111
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], edi
mov cl, byte [eax + esi - 1]
mov eax, ecx
add al, 0xd0
cmp al, 0xa
jae 0x407b1e
push 0xc
pop ecx
mov ebx, dword [esp + 8]
mov edi, dword [esp + 4]
mov edx, 0x8000000
mov dword [esp + 0x34], esi
cmp ebx, ecx
mov ecx, edi
sbb ecx, edx
movzx ecx, al
jae 0x407a62
mov eax, ebx
push 0xa
pop edx
imul edi, edi, 0xa
mul edx
add eax, ecx
adc edi, edx
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov edi, dword [esp + 0x3c]
dec edi
jmp 0x407a9f
mov eax, edi
push 0xa
pop edi
mul edi
mov edx, edi
mov edi, eax
mov eax, ebx
seto byte [esp + 0xc]
mul edx
add edx, edi
setb bh
add eax, ecx
adc edx, 0
setb cl
or cl, bh
or cl, byte [esp + 0xc]
jne 0x407a93
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov edi, dword [esp + 0x3c]
xor cl, 1
movzx eax, cl
sub edi, eax
inc esi
jmp 0x4079ff
mov edi, esi
mov esi, edi
mov edi, dword [esp + 0xc]
jmp 0x407b47
or dl, 0x20
cmp dl, 0x65
jne 0x407b3f
lea ecx, [esp + 0x40]
mov dword [esp + 0x34], edi
lea edx, [esp + 0x1c]
push dword [esp + 0xc]
push dword [esp + 0x18]
push ebx
call fcn.00437b00
add esp, 0xc
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x48]
movzx edi, word [esp + 0x50]
mov cl, byte [esp + 0x52]
mov ch, byte [esp + 0x53]
cmp dword [esp + 0x40], 1
jne 0x40753f
jmp 0x408312
or cl, 0x20
cmp cl, 0x65
jne 0x408111
lea ecx, [esp + 0x40]
lea edx, [esp + 0x1c]
mov dword [esp + 0x34], esi
push edi
jmp 0x4077aa
or cl, 0x20
cmp cl, 0x65
jne 0x40810d
lea ecx, [esp + 0x40]
lea edx, [esp + 0x1c]
mov dword [esp + 0x34], esi
push dword [esp + 0x3c]
jmp 0x4077aa
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0xc]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], esi
mov word [esp + 0x88], di
mov byte [esp + 0x8a], cl
mov byte [esp + 0x8b], ch
mov dword [esp + 0x8c], edx
mov byte [esp + 0x78], 3
mov ecx, dword [esp + 0x74]
mov esi, dword [esp + 0x6c]
mov ebx, ecx
mov dword [esp + 0x14], esi
lea eax, [ecx - 1]
imul edi, eax, 0x28
mov eax, 0
add edi, esi
sub ebx, 1
cmovb edi, eax
jb 0x4081ab
movzx eax, byte [edi]
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
cmp eax, 5
je 0x407c4d
cmp eax, 6
jne 0x408362
movsd xmm1, qword [esp + 0x88]
movsd xmm0, qword [esp + 0x90]
movsd xmm2, qword [esp + 0x78]
movsd qword [esp + 0x50], xmm1
movsd xmm1, qword [esp + 0x80]
movsd qword [esp + 0x58], xmm0
movsd qword [esp + 0x40], xmm2
movsd qword [esp + 0x48], xmm1
mov ecx, dword [edi + 0xc]
cmp ecx, dword [edi + 8]
jne 0x407d6e
mov eax, ecx
inc eax
je 0x408369
add ecx, ecx
cmp ecx, eax
cmovbe ecx, eax
push 4
pop eax
cmp ecx, eax
cmovbe ecx, eax
call fcn.00435afe
mov ecx, dword [edi + 8]
mov esi, edx
test ecx, ecx
je 0x407d25
mov edx, dword [edi + 4]
shl ecx, 5
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb4], ecx
push 8
pop ecx
mov dword [esp + 0xb8], ecx
jmp 0x407d2d
mov edx, dword [edi + 0x20]
lea ecx, [edi + 4]
mov dword [esp + 0xc], ecx
push 0x45fb50
call fcn.00437f8e
pop ecx
lea ecx, [eax + 0x30]
mov esi, eax
call fcn.00435b19
movsd xmm0, qword [esp + 0x90]
movsd qword [esi + 0x48], xmm0
movsd xmm0, qword [esp + 0x88]
movsd qword [esi + 0x40], xmm0
movsd xmm0, qword [esp + 0x78]
movsd xmm1, qword [esp + 0x80]
movsd qword [esi + 0x38], xmm1
movsd qword [esi + 0x30], xmm0
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
cmp eax, ecx
mov dword [esp + 0x10], ecx
je 0x408131
mov edx, dword [esp + 0x30]
lea ecx, [eax + 1]
mov dword [esp + 0x3c], edi
mov bh, byte [edx + eax]
mov dword [esp + 0x34], ecx
mov bl, bh
add bl, 0xf7
cmp bl, 0x17
ja 0x407d15
movzx esi, bl
mov edi, 0x80001f
bt edi, esi
jae 0x407d15
mov esi, dword [esp + 0x10]
add eax, 2
mov ecx, eax
neg esi
lea eax, [esi + ecx]
cmp eax, 1
je 0x408131
mov bh, byte [edx + ecx - 1]
mov dword [esp + 0x34], ecx
mov al, bh
add al, 0xf7
cmp al, 0x17
ja 0x407d15
movzx eax, al
mov edi, 0x80001f
bt edi, eax
jae 0x407d15
inc ecx
jmp 0x407ce9
mov bl, 0x7d
cmp bh, 0x7d
je 0x407e23
jmp 0x407e92
and dword [esp + 0xb0], 0
mov edx, eax
lea ecx, [esp + 0xa4]
lea eax, [esp + 0xb0]
push eax
push esi
call fcn.00435478
pop eax
pop ecx
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0xac]
cmp dword [esp + 0xa4], 1
je 0x408373
shr edx, 5
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov ecx, dword [edi + 0xc]
mov eax, dword [edi + 4]
movsd xmm0, qword [esp + 0x58]
shl ecx, 5
movsd qword [eax + ecx + 0x18], xmm0
movsd xmm0, qword [esp + 0x50]
movsd qword [eax + ecx + 0x10], xmm0
movsd xmm0, qword [esp + 0x40]
movsd xmm1, qword [esp + 0x48]
movsd qword [eax + ecx + 8], xmm1
movsd qword [eax + ecx], xmm0
inc dword [edi + 0xc]
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x34]
cmp edi, eax
mov dword [esp + 0x10], eax
je 0x408131
mov ecx, dword [esp + 0x30]
lea edx, [edi + 1]
mov bh, byte [ecx + edi]
mov dword [esp + 0x34], edx
mov bl, bh
add bl, 0xf7
cmp bl, 0x17
ja 0x407e18
movzx esi, bl
mov eax, 0x80001f
bt eax, esi
jae 0x407e18
mov esi, dword [esp + 0x10]
add edi, 2
mov edx, edi
neg esi
lea edi, [esi + edx]
cmp edi, 1
je 0x408131
mov bh, byte [ecx + edx - 1]
mov dword [esp + 0x34], edx
mov bl, bh
add bl, 0xf7
cmp bl, 0x17
ja 0x407e18
movzx edi, bl
mov eax, 0x80001f
bt eax, edi
jae 0x407e18
inc edx
jmp 0x407dea
mov bl, 0x5d
cmp bh, 0x5d
jne 0x407f13
mov edi, dword [esp + 4]
mov esi, dword [esp + 0x14]
imul eax, edi, 0x28
lea eax, [esi + eax + 1]
mov bh, byte [eax - 1]
push 0x27
push eax
lea eax, [esp + 0x48]
push eax
call fcn.0044b85c
add esp, 0xc
cmp bh, 7
je 0x407e89
movsd xmm0, qword [esp + 0x57]
mov eax, dword [esp + 0xc8]
movsd xmm1, qword [esp + 0x50]
mov byte [esp + 0x78], bh
movsd xmm2, qword [esp + 0x40]
mov ecx, edi
mov ebx, edi
movsd qword [eax + 0x17], xmm0
movsd qword [eax + 0x10], xmm1
movsd xmm1, qword [esp + 0x48]
movsd qword [eax], xmm2
movsd qword [eax + 8], xmm1
jmp 0x407b85
mov dword [esp + 0x74], edi
jmp 0x406c40
cmp bh, 0x2c
jne 0x408263
mov eax, dword [esp + 8]
cmp ecx, dword [esp + 0x10]
mov dword [esp + 0x74], eax
je 0x408139
mov bl, byte [edx + ecx]
lea edi, [ecx + 1]
mov dword [esp + 0x34], edi
mov eax, ebx
add al, 0xf7
cmp al, 0x17
ja 0x407f98
movzx eax, al
mov esi, 0x80001f
bt esi, eax
jae 0x407f98
mov esi, dword [esp + 0x10]
add ecx, 2
mov edi, ecx
neg esi
lea eax, [esi + edi]
cmp eax, 1
je 0x408139
mov bl, byte [edx + edi - 1]
mov dword [esp + 0x34], edi
mov eax, ebx
add al, 0xf7
cmp al, 0x17
ja 0x407f98
movzx eax, al
mov ecx, 0x80001f
bt ecx, eax
jae 0x407f98
inc edi
jmp 0x407edf
cmp bh, 0x2c
jne 0x408263
mov eax, dword [esp + 8]
cmp edx, dword [esp + 0x10]
mov dword [esp + 0x74], eax
je 0x408139
mov bl, byte [ecx + edx]
lea esi, [edx + 1]
mov dword [esp + 0x34], esi
mov bh, bl
add bh, 0xf7
cmp bh, 0x17
ja 0x406c40
movzx esi, bh
mov edi, 0x80001f
bt edi, esi
jae 0x406c40
neg dword [esp + 0x10]
add edx, 2
mov eax, dword [esp + 0x10]
lea esi, [eax + edx]
cmp esi, 1
je 0x408139
mov bl, byte [ecx + edx - 1]
mov dword [esp + 0x34], edx
mov bh, bl
add bh, 0xf7
cmp bh, 0x17
ja 0x406c40
movzx esi, bh
mov edi, 0x80001f
bt edi, esi
jae 0x406c40
inc edx
jmp 0x407f5e
cmp bl, 0x22
jne 0x40826b
mov esi, edi
lea eax, [edi + 1]
add edx, edi
sub esi, dword [esp + 0x10]
mov dword [esp + 4], eax
xor eax, eax
mov ecx, esi
add ecx, eax
je 0x408139
mov ebx, dword [esp + 4]
movzx ecx, byte [edx + eax]
add ebx, eax
inc eax
cmp byte [ecx + 0x45fa3f], 0
mov dword [esp + 0x34], ebx
jne 0x407fb2
cmp cl, 0x5c
je 0x407fe5
cmp cl, 0x22
jne 0x40826b
dec eax
jmp 0x408007
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x40]
push edi
call fcn.004377ec
pop eax
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
cmp dword [esp + 0x40], 1
je 0x40832e
mov ecx, dword [esp + 0xc]
lea esi, [esp + 0x40]
mov byte [esp + 0x40], 0
push esi
push eax
call fcn.00437301
pop ecx
pop edx
mov ecx, dword [esp + 0x3c]
mov dword [ecx + 0x20], eax
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x34]
cmp edi, eax
mov dword [esp + 4], eax
je 0x408139
mov ecx, dword [esp + 0x30]
lea edx, [edi + 1]
mov bl, byte [ecx + edi]
mov dword [esp + 0x34], edx
mov bh, bl
add bh, 0xf7
cmp bh, 0x17
ja 0x408096
movzx esi, bh
mov eax, 0x80001f
bt eax, esi
jae 0x408096
mov esi, dword [esp + 4]
add edi, 2
mov edx, edi
neg esi
lea edi, [esi + edx]
cmp edi, 1
je 0x408139
mov bl, byte [ecx + edx - 1]
mov dword [esp + 0x34], edx
mov bh, bl
add bh, 0xf7
cmp bh, 0x17
ja 0x408096
movzx edi, bh
mov eax, 0x80001f
bt eax, edi
jae 0x408096
inc edx
jmp 0x408068
cmp bl, 0x3a
jne 0x40826b
cmp edx, dword [esp + 4]
je 0x408139
mov bl, byte [ecx + edx]
lea esi, [edx + 1]
mov dword [esp + 0x34], esi
mov bh, bl
add bh, 0xf7
cmp bh, 0x17
ja 0x406c40
mov eax, dword [esp + 4]
movzx esi, bh
mov edi, 0x80001f
bt edi, esi
jae 0x406c40
add edx, 2
neg eax
lea esi, [eax + edx]
cmp esi, 1
je 0x408139
mov bl, byte [ecx + edx - 1]
mov dword [esp + 0x34], edx
mov bh, bl
add bh, 0xf7
cmp bh, 0x17
ja 0x406c40
movzx esi, bh
mov edi, 0x80001f
bt edi, esi
jae 0x406c40
inc edx
jmp 0x4080db
mov edi, dword [esp + 0x3c]
mov dl, 1
jmp 0x4077f5
mov eax, dword [esp]
xor ecx, ecx
inc ecx
mov dword [eax + 4], ecx
mov dword [eax], ecx
lea ecx, [esp + 0xa4]
call fcn.00435b5d
jmp 0x408144
mov eax, dword [esp + 8]
mov dword [esp + 0x74], eax
mov eax, dword [esp]
xor ecx, ecx
inc ecx
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov esi, dword [esp + 0x6c]
imul ebx, dword [esp + 0x74], 0x28
mov edi, esi
test ebx, ebx
je 0x408162
mov ecx, edi
add edi, 0x28
call fcn.00435b19
add ebx, 0xffffffd8
jmp 0x40814f
mov eax, dword [esp + 0x70]
test eax, eax
je 0x408177
imul edx, eax, 0x28
mov ecx, esi
push 8
call fcn.004356c5
pop eax
lea ecx, [esp + 0x1c]
call fcn.00435706
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp]
mov dword [eax + 4], 2
mov dword [eax], 1
jmp 0x408144
mov ecx, dword [esp]
lea edx, [esp + 0x1c]
call fcn.00437191
jmp 0x408123
mov ecx, dword [esp + 0x34]
xor edx, edx
mov eax, dword [esp + 0x30]
and dword [esp + 0x74], 0
mov esi, 0x80001f
sub edx, dword [esp + 0x38]
inc ecx
lea edi, [edx + ecx]
cmp edi, 1
je 0x408209
mov bl, byte [eax + ecx - 1]
mov dword [esp + 0x34], ecx
add bl, 0xf7
cmp bl, 0x17
ja 0x408249
movzx edi, bl
bt esi, edi
jae 0x408249
inc ecx
jmp 0x4081c4
mov esi, dword [esp]
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
mov dword [esi + 4], edx
mov dword [esi + 8], eax
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], ecx
mov dword [esi], 1
jmp 0x408123
mov eax, dword [esp]
movsd xmm1, qword [esp + 0x88]
movsd xmm0, qword [esp + 0x90]
movsd xmm2, qword [esp + 0x78]
movsd qword [eax + 0x18], xmm1
movsd xmm1, qword [esp + 0x80]
movsd qword [eax + 0x20], xmm0
movsd qword [eax + 8], xmm2
movsd qword [eax + 0x10], xmm1
and dword [eax], 0
jmp 0x408144
mov ecx, dword [esp]
lea edx, [esp + 0x1c]
call fcn.00437191
lea ecx, [esp + 0x78]
call fcn.00435b19
jmp 0x408144
mov eax, dword [esp + 8]
mov dword [esp + 0x74], eax
mov ecx, dword [esp]
lea edx, [esp + 0x1c]
call fcn.00437191
jmp 0x408144
mov edx, dword [esp + 0x44]
mov eax, dword [esp]
mov dword [esp + 0xc], edi
mov esi, esi
mov dword [eax + 4], edx
mov edx, dword [esp + 0xc]
mov dword [eax + 8], ebx
mov dword [eax + 0xc], esi
mov word [eax + 0x10], dx
mov byte [eax + 0x12], cl
mov byte [eax + 0x13], ch
jmp 0x408192
mov eax, dword [esp + 0x44]
mov ecx, dword [esp]
mov dword [ecx + 4], eax
mov eax, dword [esp + 8]
mov dword [ecx + 8], eax
mov eax, dword [esp + 4]
mov dword [ecx + 0xc], eax
mov al, byte [esp + 0x53]
mov word [ecx + 0x10], di
jmp 0x4082df
mov eax, dword [esp + 0x44]
mov ecx, dword [esp]
mov dword [ecx + 4], eax
mov al, byte [esp + 0x1b]
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], ebx
mov word [ecx + 0x10], si
mov byte [ecx + 0x12], dl
mov byte [ecx + 0x13], al
mov dword [ecx], 1
jmp 0x408144
mov edx, dword [esp]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
mov dword [edx + 4], esi
mov dword [edx + 8], ebx
mov dword [edx + 0xc], ecx
mov dword [edx + 0x10], eax
mov dword [edx], 1
jmp 0x408144
mov edx, dword [esp + 0x44]
mov eax, dword [esp]
mov dword [eax + 4], edx
mov eax, dword [esp]
mov dword [eax + 8], ebx
mov dword [eax + 0xc], esi
mov word [eax + 0x10], di
jmp 0x40829a
mov edi, dword [esp]
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x4c]
mov dword [edi + 4], edx
mov dword [edi + 8], eax
mov dword [edi + 0xc], esi
mov dword [edi + 0x10], ecx
mov dword [edi], 1
jmp 0x408144
mov ecx, ebx
mov edx, esi
jmp 0x408386
mov ecx, esi
jmp 0x40835e
mov ecx, dword [esp + 0x14]
mov edx, edi
jmp 0x408386
call fcn.00435954
ud2
mov eax, dword [esp + 8]
mov dword [esp + 0x74], eax
jmp 0x40837f
mov eax, dword [esp + 8]
test edx, edx
mov dword [esp + 0x74], eax
jne 0x408386
call fcn.0042e8c0
ud2
call fcn.0042e8b0
ud2