Function at 0x402dff
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x3414
call fcn.00454e20
mov dl, byte [ecx]
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
mov dword [ebp - 0x24], eax
xor eax, eax
sub dl, 2
neg dl
mov dword [ebp - 0x34], eax
mov dword [ebp - 4], eax
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x4c], ecx
mov ecx, dword [ecx + 4]
sbb edx, edx
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
push ebx
not edx
and edx, dword [0x467168]
push esi
push edi
mov dword [ebp - 0x68], 0x4575d8
mov dword [ebp - 0x50], edx
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
test eax, eax
je 0x402e65
cmp dword [eax], 0
je 0x402e65
mov esi, eax
jmp 0x402e67
xor esi, esi
test esi, esi
mov dword [ebp - 0x1c], esi
je 0x402e77
cmp ecx, dword [esi]
jb 0x402e80
jmp 0x403485
cmp byte [ecx], 0
je 0x40369a
cmp dword [ebp - 4], 0x1ff
jg 0x4052c1
push dword [ebp - 8]
call fcn.00401aa2
mov ebx, eax
mov al, byte [ebx]
test al, al
pop ecx
mov dword [ebp - 8], ebx
je 0x40347d
test esi, esi
je 0x402eb1
cmp ebx, dword [esi]
jae 0x40347d
mov ecx, dword [ebp - 4]
lea edi, [ebx + 1]
movsx edx, byte [edi]
movsx eax, al
shl ecx, 4
cmp eax, 0x5e
mov dword [ebp - 0x14], ecx
lea esi, [ebp + ecx - 0x3414]
mov dword [ebp - 0x40], edx
jg 0x403393
je 0x403374
cmp eax, 0x2c
jg 0x403103
je 0x4030f7
sub eax, 0x21
je 0x4030e2
dec eax
je 0x403068
sub eax, 4
je 0x403019
dec eax
dec eax
je 0x402fd9
dec eax
je 0x402fcd
dec eax
je 0x402f81
dec eax
jne 0x4033a4
cmp edx, 0x3d
jne 0x402f30
mov ebx, edi
mov dword [esi + 8], 0xd
jmp 0x40346e
cmp dword [ebp - 4], 0
je 0x402f3f
mov ecx, dword [ebp + ecx - 0x341c]
jmp 0x402f42
push 0xa
pop ecx
cmp ecx, 0xa
jge 0x402f66
cmp edx, 0x2b
jne 0x402f5a
mov ebx, edi
mov dword [esi + 8], 7
jmp 0x40346e
mov dword [esi + 8], 0x2a
jmp 0x40346e
cmp edx, 0x2b
jne 0x402f79
mov ebx, edi
mov dword [esi + 8], 0x35
jmp 0x40346e
dec dword [ebp - 4]
jmp 0x40346e
cmp edx, 0x3d
jne 0x402f94
mov ebx, edi
mov dword [esi + 8], 0xf
jmp 0x40346e
cmp edx, 0x2a
jne 0x402fa7
mov ebx, edi
mov dword [esi + 8], 0x34
jmp 0x40346e
cmp dword [ebp - 4], 0
je 0x402fb6
mov ecx, dword [ebp + ecx - 0x341c]
jmp 0x402fb9
push 0xa
pop ecx
xor eax, eax
cmp ecx, 0xa
setge al
dec eax
and eax, 0xfffffff9
add eax, 0x33
jmp 0x403060
mov dword [esi + 8], 9
jmp 0x40346e
cmp dword [ebp - 4], 0
je 0x403003
cmp dword [ebp + ecx - 0x341c], 0xa
jge 0x403003
cmp dword [ebp - 4], 0x1fe
jg 0x4052c1
inc dword [ebp - 4]
mov ebx, dword [ebp - 8]
mov dword [esi + 8], 0x24
mov eax, dword [ebp - 4]
shl eax, 4
mov dword [ebp + eax - 0x340c], 0xa
jmp 0x40346e
cmp edx, 0x26
jne 0x40302c
mov ebx, edi
mov dword [esi + 8], 0x1b
jmp 0x40346e
cmp edx, 0x3d
jne 0x40303f
mov ebx, edi
mov dword [esi + 8], 0x14
jmp 0x40346e
cmp dword [ebp - 4], 0
je 0x40304e
mov ecx, dword [ebp + ecx - 0x341c]
jmp 0x403051
push 0xa
pop ecx
xor eax, eax
cmp ecx, 0xa
setge al
dec eax
and eax, 0xfffffff5
add eax, 0x32
mov dword [esi + 8], eax
jmp 0x40346e
cmp dword [ebp - 4], 0
je 0x40308f
cmp dword [ebp + ecx - 0x341c], 0xa
jge 0x40308f
cmp dword [ebp - 4], 0x1fe
jg 0x4052c1
inc dword [ebp - 4]
mov dword [esi + 8], 0x24
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x24]
shl eax, 4
and dword [ebp + eax - 0x340c], 0
mov dword [ebp + eax - 0x3414], ecx
mov dword [ebp - 8], edi
mov eax, dword [ebp - 8]
mov al, byte [eax]
test al, al
je 0x4052c1
cmp al, 0x22
jne 0x4030c7
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
mov al, byte [eax]
cmp al, 0x22
jne 0x4030d4
mov ecx, dword [ebp - 0x24]
inc dword [ebp - 0x24]
inc dword [ebp - 8]
mov byte [ecx], al
jmp 0x4030aa
mov eax, dword [ebp - 0x24]
inc dword [ebp - 0x24]
mov byte [eax], 0
jmp 0x403472
cmp edx, 0x3d
je 0x4031b4
mov dword [esi + 8], 0x30
jmp 0x40346e
mov dword [esi + 8], 0xb
jmp 0x40346e
sub eax, 0x2d
je 0x403257
dec eax
dec eax
je 0x403211
sub eax, 0xb
je 0x4031f2
dec eax
dec eax
je 0x40319d
dec eax
je 0x40317e
dec eax
je 0x40313a
dec eax
jne 0x4033a4
mov dword [esi + 8], 0x19
jmp 0x40346e
sub edx, 0x3d
je 0x403170
dec edx
je 0x40314e
mov dword [esi + 8], 0x20
jmp 0x40346e
add ebx, 2
cmp byte [ebx], 0x3d
jne 0x403162
mov dword [esi + 8], 0x16
jmp 0x40346e
mov ebx, edi
mov dword [esi + 8], 0x29
jmp 0x40346e
mov ebx, edi
mov dword [esi + 8], 0x22
jmp 0x40346e
cmp edx, 0x3d
jne 0x403191
mov ebx, edi
mov dword [esi + 8], 0x1e
jmp 0x40346e
mov dword [esi + 8], 0x1d
jmp 0x40346e
sub edx, 0x3c
je 0x4031d0
dec edx
je 0x4031c2
dec edx
je 0x4031b4
mov dword [esi + 8], 0x21
jmp 0x40346e
mov ebx, edi
mov dword [esi + 8], 0x1f
jmp 0x40346e
mov ebx, edi
mov dword [esi + 8], 0x23
jmp 0x40346e
add ebx, 2
cmp byte [ebx], 0x3d
jne 0x4031e4
mov dword [esi + 8], 0x15
jmp 0x40346e
mov ebx, edi
mov dword [esi + 8], 0x28
jmp 0x40346e
cmp edx, 0x3d
jne 0x403205
mov ebx, edi
mov dword [esi + 8], 0xc
jmp 0x40346e
mov dword [esi + 8], 0x18
jmp 0x40346e
cmp edx, 0x3d
jne 0x403224
mov ebx, edi
mov dword [esi + 8], 0x10
jmp 0x40346e
cmp edx, 0x2f
jne 0x40324b
add ebx, 2
cmp byte [ebx], 0x3d
jne 0x40323d
mov dword [esi + 8], 0x11
jmp 0x40346e
mov ebx, edi
mov dword [esi + 8], 0x2e
jmp 0x40346e
mov dword [esi + 8], 0x2d
jmp 0x40346e
cmp edx, 0x3d
jne 0x40326a
mov ebx, edi
mov dword [esi + 8], 0xe
jmp 0x40346e
cmp dword [ebp - 4], 0
je 0x403279
mov ecx, dword [ebp + ecx - 0x341c]
jmp 0x40327c
push 0xa
pop ecx
cmp ecx, 0xa
jge 0x4032a0
cmp edx, 0x2d
jne 0x403294
mov ebx, edi
mov dword [esi + 8], 8
jmp 0x40346e
mov dword [esi + 8], 0x2b
jmp 0x40346e
cmp edx, 0x2d
jne 0x4032b3
mov ebx, edi
mov dword [esi + 8], 0x36
jmp 0x40346e
cmp edx, 0x30
mov dword [esi + 8], 0x2f
jl 0x4032c4
cmp edx, 0x39
jle 0x4032cd
cmp edx, 0x2e
jne 0x40346e
lea edi, [ebx + 2]
jmp 0x4032d3
inc edi
movsx eax, byte [edi]
push eax
push 0x45b190
call fcn.004549b0
test eax, eax
pop ecx
pop ecx
je 0x4032d2
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4032f6
cmp edi, dword [eax]
jae 0x40346e
push edi
call fcn.00401aa2
cmp byte [eax], 0x2a
pop ecx
jne 0x40330c
cmp byte [eax + 1], 0x2a
je 0x40346e
cmp dword [ebp - 4], 0
je 0x403336
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax - 0x341c], 0xa
jge 0x403336
cmp dword [ebp - 4], 0x1fe
jg 0x4052c1
inc dword [ebp - 4]
mov dword [esi + 8], 0x24
mov eax, dword [ebp - 4]
mov esi, dword [ebp - 0x24]
mov ebx, edi
sub ebx, dword [ebp - 8]
shl eax, 4
push ebx
push dword [ebp - 8]
mov dword [ebp + eax - 0x340c], 4
push esi
mov dword [ebp + eax - 0x3414], esi
call fcn.00454280
add esi, ebx
add esp, 0xc
mov byte [esi], 0
inc esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 8], edi
jmp 0x403472
cmp edx, 0x3d
jne 0x403387
mov ebx, edi
mov dword [esi + 8], 0x13
jmp 0x40346e
mov dword [esi + 8], 0x26
jmp 0x40346e
sub eax, 0x7c
je 0x403447
dec eax
dec eax
je 0x40343e
cmp byte [ebx], 0x2e
jne 0x4033d3
cmp edx, 0x3d
jne 0x4033bc
mov ebx, edi
mov dword [esi + 8], 0x17
jmp 0x40346e
cmp edx, 0x20
je 0x4033c6
cmp edx, 9
jne 0x4033d3
mov dword [esi + 8], 0x24
jmp 0x40346e
inc edi
movsx eax, byte [edi]
push eax
push 0x45b190
call fcn.004549b0
test eax, eax
pop ecx
pop ecx
je 0x4033d2
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4033f6
cmp edi, dword [eax]
jae 0x403511
mov eax, edi
sub eax, ebx
cmp eax, 3
jne 0x40330c
mov al, byte [ebx]
cmp al, 0x6e
je 0x403411
cmp al, 0x4e
jne 0x40330c
cmp dword [ebp - 0x40], 0x6f
je 0x403421
cmp dword [ebp - 0x40], 0x4f
jne 0x40330c
mov bl, byte [ebx + 2]
cmp bl, 0x74
je 0x403432
cmp bl, 0x54
jne 0x40330c
mov dword [esi + 8], 0x1c
jmp 0x40336c
mov dword [esi + 8], 0x31
jmp 0x40346e
cmp edx, 0x7c
jne 0x403457
mov ebx, edi
mov dword [esi + 8], 0x1a
jmp 0x40346e
cmp edx, 0x3d
jne 0x403467
mov ebx, edi
mov dword [esi + 8], 0x12
jmp 0x40346e
mov dword [esi + 8], 0x25
inc ebx
mov dword [ebp - 8], ebx
inc dword [ebp - 4]
mov esi, dword [ebp - 0x1c]
jmp 0x402e80
test esi, esi
je 0x40369a
cmp dword [ebp - 4], 0x1ff
jg 0x4052c1
cmp byte [esi + 8], 0
je 0x4034e0
cmp dword [ebp - 4], 0
je 0x4034c7
mov eax, dword [ebp - 4]
shl eax, 4
lea eax, [ebp + eax - 0x340c]
cmp dword [eax - 0x10], 0xa
jge 0x4034c7
cmp dword [ebp - 4], 0x1fe
jg 0x4052c1
inc dword [ebp - 4]
mov dword [eax], 0x24
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
shl eax, 4
mov dword [ebp + eax - 0x340c], 0x37
jmp 0x40367a
mov eax, dword [esi]
mov cl, byte [eax]
cmp cl, byte [0x46208d]
jne 0x4035f5
movzx edi, word [esi + 0xa]
add edi, eax
mov esi, 0x45b190
movsx eax, byte [edi]
push eax
push esi
call fcn.004549b0
test eax, eax
pop ecx
pop ecx
jne 0x40350e
inc edi
jmp 0x4034fb
mov ebx, dword [ebp - 8]
cmp dword [ebp - 4], 0
je 0x403543
mov eax, dword [ebp - 4]
shl eax, 4
lea eax, [ebp + eax - 0x340c]
cmp dword [eax - 0x10], 0xa
jge 0x403543
cmp dword [ebp - 4], 0x1fe
jg 0x4052c1
inc dword [ebp - 4]
mov ebx, dword [ebp - 8]
mov dword [eax], 0x24
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 4]
mov dword [ebp - 0x1c], edi
sub dword [ebp - 0x1c], ebx
push dword [ebp - 0x1c]
shl esi, 4
push ebx
push eax
mov dword [ebp + esi - 0x340c], 5
mov dword [ebp + esi - 0x3410], eax
call fcn.00454280
mov eax, dword [ebp - 0xc]
add esp, 0xc
mov dword [ebp - 0x14], eax
jmp 0x40357d
cmp ecx, edi
jae 0x403589
add eax, 0xc
mov ecx, dword [eax]
test ecx, ecx
mov dword [ebp - 0xc], eax
jne 0x403579
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x14]
push 0xc
cdq
pop ecx
idiv ecx
sub dword [ebp - 0xc], ecx
lea ebx, [eax + eax*2]
shl ebx, 2
lea eax, [ebx + 0xc]
add eax, 3
and eax, 0xfffffffc
call fcn.00454e20
mov dword [ebp - 0x40], esp
push ebx
push dword [ebp - 0x14]
push dword [ebp - 0x40]
call fcn.00454280
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x24]
add esp, 0xc
and dword [ebx + eax], 0
cmp dword [eax], 0
je 0x4035d9
mov edx, ecx
sub edx, dword [ebp - 8]
add dword [eax], edx
add eax, 0xc
jmp 0x4035c8
add ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x40]
mov dword [ebp + esi - 0x3414], eax
mov byte [ecx], 0
inc ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 8], edi
jmp 0x403688
cmp dword [ebp - 4], 0
je 0x403624
mov eax, dword [ebp - 4]
shl eax, 4
lea eax, [ebp + eax - 0x340c]
cmp dword [eax - 0x10], 0xa
jge 0x403624
cmp dword [ebp - 4], 0x1fe
jg 0x4052c1
inc dword [ebp - 4]
mov dword [eax], 0x24
mov ecx, dword [esi + 4]
mov al, byte [ecx + 0xf]
cmp al, 2
jne 0x403634
mov eax, dword [ecx + 4]
mov al, byte [eax + 0xf]
cmp al, 3
jne 0x40365e
cmp byte [0x4644c5], 0
jne 0x40364b
call fcn.00401c6f
cmp dword [eax], 0
je 0x40365e
mov eax, dword [ebp - 4]
shl eax, 4
mov dword [ebp + eax - 0x340c], 3
jmp 0x403677
mov eax, dword [ebp - 4]
shl eax, 4
and dword [ebp + eax - 0x3410], 0
mov dword [ebp + eax - 0x340c], 5
mov ecx, dword [esi + 4]
mov dword [ebp + eax - 0x3414], ecx
movzx eax, word [esi + 0xa]
add dword [ebp - 8], eax
add dword [ebp - 0xc], 0xc
inc dword [ebp - 4]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
jmp 0x402e58
cmp dword [ebp - 4], 0x1ff
jg 0x4052c1
mov eax, dword [ebp - 4]
shl eax, 4
xor edi, edi
mov dword [ebp + eax - 0x340c], 0x38
lea eax, [ebp - 0x80]
inc edi
and dword [ebp - 0x14], 0
mov dword [ebp - 0x78], 6
mov dword [ebp - 0xc14], eax
lea ecx, [ebp - 0x3414]
mov dword [ebp - 4], edi
mov esi, dword [ecx + 8]
lea eax, [ebp - 0xc14]
mov ebx, edi
sub eax, 4
shl ebx, 2
cmp esi, 6
mov edx, dword [ebx + eax]
mov edx, dword [edx + 8]
mov dword [ebp - 0xc], edx
jge 0x403771
cmp esi, 5
jne 0x403754
cmp dword [ecx + 4], 0
jne 0x403754
mov eax, dword [ecx]
mov bl, byte [eax + 0xf]
cmp bl, 2
jne 0x403712
mov edx, dword [eax + 4]
mov bl, byte [edx + 0xf]
cmp bl, 3
je 0x40372a
mov dl, byte [eax + 0xf]
cmp dl, 2
jne 0x403725
mov eax, dword [eax + 4]
mov dl, byte [eax + 0xf]
cmp dl, 4
jne 0x403754
mov eax, dword [ecx + 0x18]
cmp eax, 0x17
jg 0x403737
cmp eax, 0xc
jge 0x40374d
cmp eax, 7
je 0x40374d
cmp eax, 8
je 0x40374d
cmp dword [ebp - 0xc], 0x35
je 0x40374d
cmp dword [ebp - 0xc], 0x36
jne 0x403754
mov dword [ecx + 8], 3
mov eax, dword [ebp - 0x30]
lea eax, [ebp + eax*4 - 0x1414]
mov dword [eax], ecx
mov eax, dword [eax]
add ecx, 0x10
and dword [eax + 0xc], 0
inc dword [ebp - 0x30]
jmp 0x4036d8
mov edx, esi
sub edx, 9
je 0x4038fb
dec edx
je 0x4038af
sub edx, 0xe
je 0x4038bf
sub edx, 0x1f
je 0x4038a1
dec edx
je 0x403891
movzx eax, byte [esi + 0x463460]
cdq
push 2
pop edi
idiv edi
movzx eax, byte [esi + 0x463460]
add edx, eax
mov eax, dword [ebp - 0xc]
movzx edi, byte [eax + 0x463460]
cmp edi, edx
jl 0x4037eb
cmp esi, 0x17
jg 0x4037cf
cmp esi, 0xc
jl 0x4037cf
cmp eax, 0x33
jne 0x4037eb
cmp eax, 0x34
jne 0x403924
cmp esi, 0x2f
jl 0x4037e2
cmp esi, 0x33
jle 0x4037eb
cmp esi, 0x1c
jne 0x403924
cmp esi, 0x1b
jg 0x403806
cmp esi, 0x19
jl 0x403806
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x403806
mov eax, dword [ebp + eax*4 - 0x1418]
mov dword [eax + 0xc], ecx
cmp esi, 0xb
je 0x403817
inc dword [ebp - 4]
mov dword [ebp + ebx - 0xc14], ecx
jmp 0x403886
cmp dword [ebp - 0x14], 0
jne 0x403886
inc dword [ebp - 4]
cmp dword [ecx + 0x18], 0x38
mov dword [ebp + ebx - 0xc14], ecx
lea eax, [ecx + 0x10]
je 0x403886
push 3
pop edi
cmp dword [eax + 0x18], 0x1d
jne 0x403886
mov edx, dword [eax + 8]
cmp edx, edi
je 0x403876
cmp edx, 5
jne 0x403886
cmp dword [eax + 4], 0
jne 0x403886
mov esi, dword [eax]
mov dl, byte [esi + 0xf]
cmp dl, 2
jne 0x40385b
mov edx, dword [esi + 4]
mov dl, byte [edx + 0xf]
cmp dl, 3
je 0x403873
mov dl, byte [esi + 0xf]
cmp dl, 2
jne 0x40386e
mov edx, dword [esi + 4]
mov dl, byte [edx + 0xf]
cmp dl, 4
jne 0x403886
mov dword [eax + 8], edi
mov dword [eax + 0x18], 0xc
add eax, 0x20
cmp dword [eax + 8], 0x38
jne 0x403833
add ecx, 0x10
mov edi, dword [ebp - 4]
jmp 0x4036d8
cmp dword [ebp - 0xc], 6
je 0x403947
cmp dword [ebp - 0xc], 0xa
jmp 0x40391e
inc dword [ebp - 0x14]
mov dword [ebp + ebx - 0xc14], ecx
inc edi
add ecx, 0x10
mov dword [ebp + edi*4 - 0xc14], ecx
inc edi
add ecx, 0x10
jmp 0x4036d5
cmp dword [ebp - 0xc], 6
je 0x4052c1
mov esi, dword [ebp - 0x30]
dec edi
cmp dword [ebp - 0xc], 0x19
lea edx, [ebp + edi*4 - 0xc14]
mov eax, dword [edx]
mov dword [ebp - 4], edi
mov dword [ebp + esi*4 - 0x1414], eax
jne 0x403765
mov dword [eax + 0xc], ecx
inc edi
mov dword [edx], ecx
mov dword [ebp - 4], edi
add ecx, 0x10
jmp 0x403769
cmp dword [ebp - 0xc], 0xa
jne 0x40391a
dec edi
mov eax, dword [eax + edi*4]
add ecx, 0x10
cmp dword [eax + 8], 0x37
mov dword [ebp - 4], edi
jne 0x4036d8
dec dword [ebp - 0x14]
jmp 0x403924
cmp dword [ebp - 0xc], 6
je 0x4052c1
dec dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0xc14]
mov edx, dword [ebp - 0x30]
and dword [eax + 0xc], 0
inc dword [ebp - 0x30]
mov dword [ebp + edx*4 - 0x1414], eax
jmp 0x403889
dec edi
xor ecx, ecx
mov dword [ebp - 4], edi
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x10], ecx
cmp ecx, dword [ebp - 0x30]
jge 0x4050de
mov eax, ecx
shl eax, 2
mov ebx, dword [ebp + eax - 0x1414]
mov dword [ebp - 0x48], eax
mov eax, dword [ebx + 8]
cmp eax, 6
jge 0x403b5e
cmp eax, 5
jne 0x404ec6
mov eax, dword [ebx + 4]
xor edi, edi
cmp eax, edi
jne 0x403a67
mov ecx, dword [ebx]
push edi
call fcn.00401cb5
mov esi, eax
inc esi
cmp esi, 1
jne 0x4039c4
mov eax, dword [ebx]
mov cl, byte [eax + 0xf]
cmp cl, 2
jne 0x4039b0
mov eax, dword [eax + 4]
mov cl, byte [eax + 0xf]
cmp cl, 3
je 0x404ebf
mov dword [ebx], 0x4575d8
jmp 0x40438b
mov ecx, dword [ebx]
mov al, byte [ecx + 0xf]
cmp al, 2
jne 0x4039d3
mov eax, dword [ecx + 4]
mov al, byte [eax + 0xf]
cmp al, 3
jne 0x4039e4
call fcn.00401c6f
cmp dword [eax], edi
jne 0x404ebf
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
sub eax, dword [ebp - 0x24]
mov ecx, dword [ebp + 0x18]
add eax, dword [ecx]
cmp esi, eax
ja 0x4039fd
mov eax, dword [ebp - 0x24]
add dword [ebp - 0x24], esi
jmp 0x403a49
cmp esi, 0x1001
jae 0x403a23
cmp dword [ebp - 0x54], 0x9c40
jae 0x403a23
mov eax, esi
add eax, 3
and eax, 0xfffffffc
call fcn.00454e20
add dword [ebp - 0x54], esi
mov dword [ebp - 0x28], esp
jmp 0x403a4c
cmp dword [ebp - 0x34], 0x64
je 0x405011
push esi
call fcn.0043e5d0
cmp eax, edi
pop ecx
mov ecx, dword [ebp - 0x34]
mov dword [ebp + ecx*4 - 0x310], eax
je 0x405011
inc dword [ebp - 0x34]
mov dword [ebp - 0x28], eax
push dword [ebp - 0x28]
mov ecx, dword [ebx]
call fcn.00401cb5
mov eax, dword [ebp - 0x28]
mov dword [ebx], eax
mov dword [ebx + 8], 4
jmp 0x404ec6
mov esi, dword [ebx]
mov dword [ebp - 8], eax
mov dword [ebx], 0x4575d8
mov dword [ebx + 8], edi
mov eax, dword [esi]
cmp eax, edi
je 0x403ae7
mov ecx, dword [ebp - 8]
cmp ecx, eax
jae 0x403a9c
cmp edi, 0xfd
jge 0x403aa4
mov al, byte [ecx]
mov byte [ebp + edi - 0x180], al
inc edi
inc ecx
cmp ecx, dword [esi]
mov dword [ebp - 8], ecx
jb 0x403a82
cmp edi, 0xfd
jl 0x403aac
cmp ecx, dword [esi]
jb 0x404ec6
mov ecx, dword [esi + 4]
push 0
call fcn.00401cb5
mov ecx, 0xfd
sub ecx, edi
cmp eax, ecx
ja 0x404ec6
mov ecx, dword [esi + 4]
lea eax, [ebp + edi - 0x180]
push eax
call fcn.00401cb5
add edi, eax
movzx eax, word [esi + 0xa]
add dword [ebp - 8], eax
add esi, 0xc
mov eax, dword [esi]
test eax, eax
jne 0x403a7b
mov ecx, dword [ebp - 8]
jmp 0x403afd
cmp edi, 0xfd
jge 0x403b0b
mov byte [ebp + edi - 0x180], al
inc edi
inc ecx
mov al, byte [ecx]
test al, al
jne 0x403aec
cmp edi, 0xfd
jl 0x403b14
cmp byte [ecx], 0
jne 0x404ec6
test edi, edi
je 0x404ec6
push 0
push 3
push edi
lea eax, [ebp - 0x180]
push eax
mov ecx, 0x464e00
mov byte [ebp + edi - 0x180], 0
call fcn.0041c6e8
test eax, eax
je 0x4051f2
mov cl, byte [eax + 0xf]
cmp cl, 2
jne 0x403b50
mov ecx, dword [eax + 4]
mov cl, byte [ecx + 0xf]
cmp cl, 3
jne 0x404ec6
jmp 0x404d2b
cmp eax, 0x37
jne 0x404099
mov eax, dword [ebx]
mov esi, dword [eax + 4]
movzx eax, byte [eax + 9]
cmp eax, edi
mov dword [ebp - 0x1c], eax
jg 0x4052c1
cmp byte [esi + 0x31], 0
je 0x403cd7
push dword [ebp - 0x1c]
sub edi, eax
mov dword [ebx + 8], 1
mov eax, dword [esi]
mov dword [ebx], eax
lea eax, [ebp - 0x180]
mov dword [ebx + 4], eax
mov eax, dword [ebx + 0xc]
and dword [ebx + 0xc], 0
mov dword [ebp - 0x5c], eax
lea eax, [ebp + edi*4 - 0xc14]
push eax
push ebx
mov dword [ebp - 4], edi
call dword [esi + 4]
add esp, 0xc
test edi, edi
jne 0x403bdc
mov eax, dword [ebp - 0x30]
dec eax
cmp dword [ebp - 0x10], eax
jne 0x403bdc
cmp dword [ebp - 0x50], edi
mov dword [ebp - 0x14], 1
je 0x403be0
mov dword [ebp - 0x1c], 1
jmp 0x403be4
and dword [ebp - 0x14], 0
and dword [ebp - 0x1c], 0
mov edx, dword [ebx + 0xc]
xor ecx, ecx
inc ecx
test edx, edx
je 0x403c88
cmp edx, dword [ebx]
jne 0x403c71
cmp dword [ebp - 0x1c], 0
jne 0x40501c
mov eax, dword [ebp - 0x30]
dec eax
cmp dword [ebp - 0x10], eax
jge 0x403c6f
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp + eax - 0x1410]
cmp dword [eax + 8], 0xc
jne 0x403c6f
test edi, edi
je 0x403c6f
mov eax, dword [ebp + edi*4 - 0xc18]
cmp dword [eax + 8], 3
jne 0x403c6f
mov eax, dword [eax]
mov cl, byte [eax + 0xf]
cmp cl, 2
jne 0x403c3a
mov eax, dword [eax + 4]
mov cl, byte [eax + 0xf]
cmp cl, 3
jne 0x403c6f
push dword [ebx + 4]
mov esi, dword [ebp + edi*4 - 0xc18]
mov ecx, dword [esi]
dec edi
push edx
mov dword [ebp - 4], edi
call fcn.0041d113
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x1414]
mov eax, dword [eax + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [esi]
jmp 0x404d2b
xor ecx, ecx
cmp dword [ebp - 0x34], 0x64
je 0x4050bd
mov eax, dword [ebp - 0x34]
inc dword [ebp - 0x34]
mov dword [ebp + eax*4 - 0x310], edx
mov eax, dword [ebp - 0x5c]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
cmp eax, 1
je 0x404ec6
cmp eax, 2
je 0x404ec6
xor edx, edx
cmp dword [ebp - 0x1c], edx
jne 0x40502f
mov eax, dword [ebx]
cmp byte [eax], dl
jne 0x403cbf
mov dword [ebx], 0x4575d8
jmp 0x404ec6
cmp ecx, edx
mov dword [ebp - 0x28], eax
je 0x403fde
xor ecx, ecx
cmp dword [ebp - 0x14], edx
sete cl
jmp 0x403fde
cmp dword [esi + 0x28], 0
jle 0x403d58
mov eax, dword [esi + 0xc]
dec eax
cmp eax, 0xffffffff
mov dword [ebp - 0x20], eax
jle 0x403d3f
shl eax, 4
mov dword [ebp - 0x5c], eax
lea eax, [ebp + edi*4 - 0xc14]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x1c]
cmp dword [ebp - 0x20], eax
jge 0x403d2f
sub dword [ebp - 0x14], 4
mov eax, dword [ebp - 0x14]
mov edi, dword [eax]
cmp dword [edi + 8], 3
jne 0x403d2f
mov eax, dword [esi + 8]
mov ecx, dword [ebp - 0x5c]
mov eax, dword [eax + ecx]
cmp byte [eax + 0xf], 3
jb 0x403d2f
mov ecx, dword [edi]
call fcn.00401c8a
mov dword [edi], eax
mov dword [edi + 8], 4
dec dword [ebp - 0x20]
sub dword [ebp - 0x5c], 0x10
cmp dword [ebp - 0x20], 0xffffffff
jg 0x403cf9
mov edi, dword [ebp - 4]
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x44]
push eax
push esi
call fcn.0041d00a
add esp, 0xc
test eax, eax
je 0x4050bd
mov ecx, dword [esi + 0xc]
dec ecx
cmp ecx, 0xffffffff
mov dword [ebp - 0x20], ecx
jle 0x403e25
mov eax, ecx
shl eax, 4
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 8]
add eax, dword [ebp - 0x14]
cmp ecx, dword [ebp - 0x1c]
jl 0x403dc3
mov ecx, dword [eax + 4]
dec ecx
je 0x403db8
dec ecx
je 0x403da9
dec ecx
je 0x403d98
push 1
push 0
push 0xffffffffffffffff
push 0
mov ecx, dword [eax]
call fcn.0040152b
jmp 0x403e11
fld qword [eax + 8]
push ecx
push ecx
mov ecx, dword [eax]
fstp qword [esp]
call fcn.0041d1f7
jmp 0x403e11
push dword [eax + 0xc]
mov ecx, dword [eax]
push dword [eax + 8]
call fcn.004018c1
jmp 0x403e11
push 1
push 0
push 0xffffffffffffffff
push dword [eax + 8]
jmp 0x403d8f
mov edx, dword [ebp + edi*4 - 0xc18]
mov ecx, dword [edx + 8]
dec edi
cmp ecx, 6
mov dword [ebp - 4], edi
mov dword [ebp - 0x5c], ecx
jge 0x405052
mov ecx, dword [eax]
cmp byte [ecx + 0xf], 3
jae 0x403e0b
cmp dword [ebp - 0x5c], 3
jne 0x40503e
mov eax, edx
mov eax, dword [eax]
jmp 0x403df8
mov eax, dword [eax + 4]
cmp byte [eax + 0xf], 2
je 0x403df5
cmp eax, ecx
je 0x403e11
mov dword [ecx + 4], eax
mov byte [ecx + 0xf], 2
jmp 0x403e11
push edx
call fcn.0040178c
mov ecx, dword [ebp - 0x20]
sub dword [ebp - 0x14], 0x10
dec ecx
cmp ecx, 0xffffffff
mov dword [ebp - 0x20], ecx
jg 0x403d70
mov eax, dword [0x46434c]
mov dword [ebp - 0x1c], eax
push 0
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], 0x4575d8
mov dword [0x46434c], esi
mov ecx, dword [esi + 4]
inc dword [esi + 0x28]
push eax
push 2
call fcn.00405839
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
dec dword [esi + 0x28]
mov eax, dword [ebp - 0x1c]
mov dword [0x46434c], eax
mov eax, dword [ecx]
cmp eax, 8
je 0x4050c4
test eax, eax
je 0x4050c4
test edi, edi
jne 0x403ee5
mov eax, dword [ebp - 0x30]
dec eax
cmp dword [ebp - 0x10], eax
jne 0x403ee5
mov edi, dword [ebp - 0x50]
xor edx, edx
inc edx
test edi, edi
je 0x403eae
cmp dword [ebp - 0x44], 0
je 0x405068
cmp dword [ebp - 0x1c], esi
jne 0x405068
cmp byte [edi + 0xe], 0
je 0x405068
test byte [edi + 0xd], 4
jne 0x405068
mov eax, dword [ebp - 0x4c]
cmp byte [eax], 3
je 0x4050a7
mov ecx, dword [ebp - 0x28]
cmp byte [ecx], 0
jne 0x403ee9
mov dword [ebx], 0x4575d8
mov dword [ebx + 8], 4
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x44]
push eax
push esi
call fcn.00401bb9
add esp, 0xc
jmp 0x404ec6
xor edx, edx
jmp 0x403eba
mov eax, dword [ebp - 0x30]
dec eax
cmp dword [ebp - 0x10], eax
jge 0x403fb3
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp + eax - 0x1410]
cmp dword [eax + 8], 0xc
jne 0x403fb3
cmp dword [ebp - 4], 0
je 0x403fb3
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0xc18]
cmp dword [eax + 8], 3
jne 0x403fb3
mov edi, dword [eax]
mov al, byte [edi + 0xf]
cmp al, 2
jne 0x403f37
mov eax, dword [edi + 4]
mov al, byte [eax + 0xf]
cmp al, 3
jne 0x403fb3
cmp dword [ebp - 0x44], 0
je 0x403f52
cmp dword [ebp - 0x1c], esi
jne 0x403f52
cmp byte [edi + 0xe], 0
je 0x403f52
test byte [edi + 0xd], 4
je 0x403fb3
dec dword [ebp - 4]
push ecx
call fcn.00454880
pop ecx
mov ecx, dword [ebp - 0x28]
cmp ecx, dword [0x467c00]
jne 0x403f85
cmp eax, 0x40
jb 0x403f85
push eax
push ecx
mov ecx, edi
call fcn.0041d113
and dword [0x467c00], 0
and dword [0x467c04], 0
jmp 0x403f92
push 1
push 0
push eax
push ecx
mov ecx, edi
call fcn.0040152b
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x1414]
mov eax, dword [eax + 0xc]
mov dword [ebx + 0xc], eax
mov dword [ebx], edi
mov dword [ebx + 8], 3
jmp 0x403ecf
cmp ecx, dword [0x467c00]
jne 0x403fdb
xor ecx, ecx
test edx, edx
jne 0x403fde
mov eax, dword [ebp - 0x10]
jmp 0x403fd3
mov edx, dword [ebp + eax*4 - 0x1414]
cmp dword [edx + 8], 0x37
je 0x403fdb
inc eax
cmp eax, dword [ebp - 0x30]
jl 0x403fc6
jmp 0x403fde
xor ecx, ecx
inc ecx
test ecx, ecx
mov dword [ebx + 8], 4
je 0x404085
push dword [ebp - 0x28]
call fcn.00454880
mov edi, eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
sub eax, dword [ebp - 0x24]
pop ecx
mov ecx, dword [ebp + 0x18]
add eax, dword [ecx]
inc edi
cmp edi, eax
ja 0x40401e
push edi
push dword [ebp - 0x28]
push dword [ebp - 0x24]
call fcn.00454280
add esp, 0xc
add dword [ebp - 0x24], edi
jmp 0x404088
cmp edi, 0x1001
jae 0x404050
cmp dword [ebp - 0x54], 0x9c40
jae 0x404050
mov eax, edi
add eax, 3
and eax, 0xfffffffc
call fcn.00454e20
mov eax, esp
push edi
push dword [ebp - 0x28]
push eax
call fcn.00454280
add esp, 0xc
add dword [ebp - 0x54], edi
jmp 0x404088
cmp dword [ebp - 0x34], 0x64
je 0x4050bd
push edi
call fcn.0043e5d0
test eax, eax
pop ecx
mov ecx, dword [ebp - 0x34]
mov dword [ebp + ecx*4 - 0x310], eax
je 0x4050bd
push edi
push dword [ebp - 0x28]
push eax
call fcn.00454280
add esp, 0xc
inc dword [ebp - 0x34]
jmp 0x404088
mov eax, dword [ebp - 0x28]
mov dword [ebx], eax
cmp byte [esi + 0x31], 0
jne 0x404ec6
jmp 0x403ecf
cmp eax, 0x18
jne 0x4040ce
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x405003
cmp dword [ebp - 4], 0
je 0x405003
dec dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov esi, dword [ebp + ecx*4 - 0xc14]
mov edi, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebx + 0xc], eax
jmp 0x404ed0
test edi, edi
je 0x4052c1
mov esi, dword [ebp + edi*4 - 0xc18]
mov edx, dword [esi + 8]
dec edi
cmp edx, 6
mov dword [ebp - 4], edi
jge 0x4052c1
cmp eax, 0x19
jne 0x40412a
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x4052c1
inc ecx
cmp dword [ebp + ecx*4 - 0x1414], eax
mov dword [ebp - 0x10], ecx
je 0x404119
mov edx, eax
inc ecx
cmp dword [ebp + ecx*4 - 0x1414], edx
jne 0x40410c
mov dword [ebp - 0x10], ecx
mov eax, dword [eax + 0xc]
mov dword [esi + 0xc], eax
mov edi, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x404ec6
cmp eax, 0xb
je 0x405003
cmp eax, 0xc
je 0x40417d
mov eax, edx
xor edi, edi
sub eax, edi
je 0x40416c
sub eax, 3
je 0x40414c
dec eax
jne 0x404173
mov eax, dword [esi]
jmp 0x404153
mov ecx, dword [esi]
call fcn.00401c8a
push edi
push 1
push edi
push 1
push eax
mov dword [ebp - 0xc], eax
call fcn.00401ab6
mov edi, eax
add esp, 0x14
mov dword [ebp - 0x58], edi
jmp 0x404180
mov ecx, dword [esi]
mov dword [ebp - 0xc], ecx
jmp 0x404176
mov ecx, dword [ebp - 0xc]
mov edi, edx
mov dword [ebp - 0x58], edi
jmp 0x404183
mov edi, dword [ebp - 0x58]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebx + 8]
and dword [ebp - 0x1c], 0
xor edx, edx
inc edx
cmp eax, 0x30
jg 0x4042bb
je 0x404265
cmp eax, 7
jl 0x4043d1
cmp eax, 8
jle 0x4042e8
cmp eax, 0x19
jle 0x4043d1
cmp eax, 0x1b
jle 0x404216
cmp eax, 0x1c
je 0x404265
cmp eax, 0x2f
jne 0x4043d1
cmp edi, edx
jne 0x4041f6
cmp dword [esi + 8], edx
jne 0x4041de
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x4041e5
push ecx
call fcn.00401a01
pop ecx
neg eax
adc edx, 0
neg edx
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x40438b
cmp edi, 2
jne 0x4043c2
cmp dword [esi + 8], edi
jne 0x404208
fld qword [esi]
jmp 0x40420f
push ecx
call fcn.004011d5
pop ecx
fchs
jmp 0x404389
cmp edi, edx
jne 0x404231
cmp dword [esi + 8], edx
jne 0x404226
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x40422d
push ecx
call fcn.00401a01
pop ecx
or eax, edx
jmp 0x40425e
cmp edi, 2
jne 0x40425b
cmp dword [esi + 8], edi
jne 0x40423f
fld qword [esi]
jmp 0x404246
push ecx
call fcn.004011d5
pop ecx
fld qword [0x459b30]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jnp 0x4042af
jmp 0x404260
cmp byte [ecx], 0
je 0x4042af
xor eax, eax
inc eax
jmp 0x4042b1
cmp edi, edx
jne 0x404280
cmp dword [esi + 8], edx
jne 0x404275
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x40427c
push ecx
call fcn.00401a01
pop ecx
or eax, edx
jmp 0x4042ad
cmp edi, 2
jne 0x4042aa
cmp dword [esi + 8], edi
jne 0x40428e
fld qword [esi]
jmp 0x404295
push ecx
call fcn.004011d5
pop ecx
fld qword [0x459b30]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jp 0x4042af
jmp 0x404260
cmp byte [ecx], 0
je 0x404260
xor eax, eax
xor ecx, ecx
mov dword [ebx + 4], ecx
jmp 0x404e88
cmp eax, 0x31
je 0x404e0a
cmp eax, 0x32
je 0x404df0
cmp eax, 0x33
je 0x404e0a
cmp eax, 0x34
jle 0x4043d1
cmp eax, 0x36
jg 0x4043d1
xor ecx, ecx
cmp eax, 0x35
setge cl
cmp dword [esi + 8], 3
mov dword [ebp - 0x1c], ecx
jne 0x404393
test edi, edi
je 0x404397
cmp eax, 7
je 0x404315
cmp eax, 0x35
je 0x404315
or dword [ebp - 0x14], 0xffffffff
jmp 0x404318
mov dword [ebp - 0x14], edx
cmp edi, edx
push dword [ebp - 0xc]
jne 0x40433e
call fcn.00401a01
mov dword [ebx], eax
mov eax, dword [ebp - 0x14]
mov dword [ebx + 4], edx
cdq
add eax, dword [ebx]
pop ecx
adc edx, dword [ebx + 4]
mov ecx, dword [esi]
push edx
push eax
call fcn.004018c1
jmp 0x404357
call fcn.004011d5
fst qword [ebx]
fild dword [ebp - 0x14]
push ecx
mov ecx, dword [esi]
fadd st(1)
fstp qword [esp]
fstp st(0)
call fcn.0041d1f7
cmp dword [ebp - 0x1c], 0
je 0x40438b
mov esi, dword [esi]
mov al, byte [esi + 0xf]
cmp al, 2
jne 0x40436c
mov eax, dword [esi + 4]
mov al, byte [eax + 0xf]
cmp al, 3
je 0x404ebd
cmp edi, 1
jne 0x404384
mov eax, dword [ebp - 0x14]
cdq
add dword [ebx], eax
adc dword [ebx + 4], edx
jmp 0x40438b
fild dword [ebp - 0x14]
fadd qword [ebx]
fstp qword [ebx]
mov dword [ebx + 8], edi
jmp 0x404ec6
test edi, edi
jne 0x4043c2
mov ecx, dword [esi]
push 1
xor edi, edi
push edi
push 0xffffffffffffffff
push edi
call fcn.0040152b
cmp dword [ebp - 0x1c], edi
je 0x4043c2
mov esi, dword [esi]
mov al, byte [esi + 0xf]
cmp al, 2
jne 0x4043ba
mov eax, dword [esi + 4]
mov al, byte [eax + 0xf]
cmp al, 3
je 0x404ebd
and dword [ebx + 8], 0
mov dword [ebx], 0x4575d8
jmp 0x404ec6
cmp dword [ebp - 4], 0
je 0x4052c1
dec dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov edi, dword [ebp + ecx*4 - 0xc14]
mov ecx, dword [edi + 8]
cmp ecx, 6
jge 0x4052c1
cmp eax, 0x17
jg 0x4044b6
cmp eax, 0xc
jl 0x4044b6
cmp ecx, 3
jne 0x4043c2
add eax, 0xfffffff4
cmp eax, 0xb
ja case.default.0x404417
jmp dword [eax*4 + 0x405303]
mov ecx, dword [edi]
push esi
call fcn.0040178c
mov eax, dword [edi]
mov cl, byte [eax + 0xf]
cmp cl, 2
jne 0x404436
mov ecx, dword [eax + 4]
mov cl, byte [ecx + 0xf]
cmp cl, 4
jne 0x404d2b
mov eax, dword [ebx + 0xc]
mov edi, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebx + 0xc], eax
jmp 0x404ec6
mov dword [ebx + 8], 0x2a
jmp case.default.0x404417
mov dword [ebx + 8], 0x2b
jmp case.default.0x404417
mov dword [ebx + 8], 0x2c
jmp case.default.0x404417
mov dword [ebx + 8], 0x2d
jmp case.default.0x404417
mov dword [ebx + 8], 0x2e
jmp case.default.0x404417
mov dword [ebx + 8], 0x25
jmp case.default.0x404417
mov dword [ebx + 8], 0x26
jmp case.default.0x404417
mov dword [ebx + 8], 0x27
jmp case.default.0x404417
mov dword [ebx + 8], 0x28
jmp case.default.0x404417
mov dword [ebx + 8], 0x29
jmp case.default.0x404417
mov dword [ebx + 8], 0x24
mov eax, dword [edi]
mov dword [ebp - 0x1c], eax
mov ecx, dword [edi + 8]
mov eax, ecx
sub eax, 0
je 0x4044e9
sub eax, 3
je 0x4044e0
dec eax
jne 0x4044ee
mov eax, dword [edi]
push 0
push 1
push 0
push 1
push eax
mov dword [ebp - 0x40], eax
call fcn.00401ab6
add esp, 0x14
jmp 0x4044f0
mov ecx, dword [edi]
call fcn.00401c8a
jmp 0x4044ca
mov eax, dword [edi]
mov dword [ebp - 0x40], eax
mov eax, ecx
cmp dword [ebp - 0x58], 0
je 0x4049aa
test eax, eax
je 0x4049aa
mov ecx, dword [ebx + 8]
cmp ecx, 0x24
je 0x4049aa
xor edx, edx
inc edx
cmp dword [ebp - 0x58], edx
jne 0x40451f
cmp eax, edx
jne 0x40451f
cmp ecx, 0x2d
jne 0x404531
cmp ecx, 0x29
jg 0x404742
cmp ecx, 0x25
jl 0x404742
mov eax, dword [esi + 8]
dec eax
je 0x40455c
dec eax
je 0x40454d
push dword [ebp - 0xc]
call fcn.00401a01
mov esi, eax
pop ecx
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], edx
jmp 0x40456a
fld qword [esi]
call fcn.0045540c
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], edx
jmp 0x404567
mov eax, dword [esi]
mov dword [ebp - 0x3c], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x38], eax
mov esi, dword [ebp - 0x3c]
mov eax, dword [edi + 8]
dec eax
je 0x404587
dec eax
je 0x40457e
push dword [ebp - 0x40]
call fcn.00401a01
pop ecx
jmp 0x40458c
fld qword [edi]
call fcn.0045540c
jmp 0x40458c
mov eax, dword [edi]
mov edx, dword [edi + 4]
mov ecx, dword [ebx + 8]
xor edi, edi
inc edi
cmp ecx, 0x27
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0x20], edi
jg 0x40462d
je 0x404623
sub ecx, 0x1d
cmp ecx, 9
ja case.0x4045b2.36
jmp dword [ecx*4 + 0x405333]
cmp eax, esi
jne 0x404603
cmp edx, dword [ebp - 0x38]
jne 0x404603
mov eax, edi
jmp 0x404605
cmp eax, esi
jne 0x4045c2
cmp edx, dword [ebp - 0x38]
je 0x404603
jmp 0x4045c2
cmp edx, dword [ebp - 0x38]
jl 0x404603
jg 0x4045c2
cmp eax, esi
jbe 0x404603
jmp 0x4045c2
cmp edx, dword [ebp - 0x38]
jg 0x404603
jl 0x4045c2
cmp eax, esi
jae 0x404603
jmp 0x4045c2
cmp edx, dword [ebp - 0x38]
jl 0x404603
jg 0x4045c2
cmp eax, esi
jb 0x404603
jmp 0x4045c2
cmp edx, dword [ebp - 0x38]
jg 0x404603
jl 0x4045c2
cmp eax, esi
jbe 0x4045c2
xor eax, eax
xor ecx, ecx
mov dword [ebx + 4], ecx
jmp 0x40473b
or eax, esi
or edx, dword [ebp - 0x38]
jmp 0x404738
xor eax, esi
xor edx, dword [ebp - 0x38]
jmp 0x404738
and eax, esi
and edx, dword [ebp - 0x38]
jmp 0x404738
sub ecx, 0x28
je 0x404731
dec ecx
je 0x404728
dec ecx
je 0x404721
dec ecx
je 0x40471a
dec ecx
je 0x40470d
dec ecx
dec ecx
je 0x4046f5
sub ecx, 6
jne case.0x4045b2.36
mov ecx, eax
or ecx, edx
jne 0x404686
cmp dword [ebp - 0x38], 0
jg 0x404690
jl case.default.0x404a5a
test esi, esi
jae 0x404690
mov dword [ebx], 0x4575d8
and dword [ebp - 0x20], 0
mov eax, dword [ebp - 0x20]
mov dword [ebx + 8], eax
jmp 0x404e9d
test edx, edx
jg 0x404690
jl 0x404694
test eax, eax
jb 0x404694
xor edi, edi
jmp 0x4046a1
neg eax
adc edx, 0
neg edx
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
fild qword [ebp - 0x3c]
sub esp, 0x10
fstp qword [esp + 8]
fild qword [ebp - 0x70]
fstp qword [esp]
call fcn.0041f75a
test edi, edi
fst qword [ebp - 0x18]
fstp qword [ebx]
je 0x4046d7
push 0
push 2
push dword [ebp - 0x38]
push esi
call fcn.00455260
or eax, edx
je 0x4046d7
fld qword [ebp - 0x18]
fchs
fstp qword [ebx]
cmp dword [ebp - 0x38], 0
jg 0x4046ec
jl 0x4046e3
test esi, esi
jae 0x4046ec
mov dword [ebp - 0x20], 2
jmp case.0x4045b2.36
fld qword [ebx]
call fcn.0045540c
jmp 0x404738
mov ecx, esi
or ecx, dword [ebp - 0x38]
je case.default.0x404a5a
push dword [ebp - 0x38]
push esi
push edx
push eax
call fcn.00455360
jmp 0x404738
push dword [ebp - 0x38]
push esi
push edx
push eax
call fcn.00455320
jmp 0x404738
sub eax, esi
sbb edx, dword [ebp - 0x38]
jmp 0x404738
add eax, esi
adc edx, dword [ebp - 0x38]
jmp 0x404738
mov ecx, esi
call fcn.00455490
jmp 0x404738
mov ecx, esi
call fcn.004554c0
mov dword [ebx + 4], edx
mov dword [ebx], eax
jmp case.0x4045b2.36
mov eax, dword [esi + 8]
dec eax
je 0x40475d
dec eax
je 0x404759
push dword [ebp - 0xc]
call fcn.00401220
xor edx, edx
pop ecx
inc edx
jmp 0x40475f
fld qword [esi]
jmp 0x40475f
fild qword [esi]
mov eax, dword [edi + 8]
fstp qword [ebp - 0x18]
dec eax
je 0x40477d
dec eax
je 0x404779
push dword [ebp - 0x40]
call fcn.00401220
xor edx, edx
pop ecx
inc edx
jmp 0x40477f
fld qword [edi]
jmp 0x40477f
fild qword [edi]
mov ecx, dword [ebx + 8]
fst qword [ebp - 0x60]
cmp ecx, 0x23
push 2
pop edi
jg 0x40486f
je 0x404854
cmp ecx, 0x1d
jl 0x404979
cmp ecx, 0x1e
jle 0x404833
cmp ecx, 0x1f
je 0x404812
cmp ecx, 0x20
je 0x4047f7
cmp ecx, 0x21
je 0x4047dc
cmp ecx, 0x22
jne 0x404979
fcomp qword [ebp - 0x18]
fnstsw ax
test ah, 1
jne 0x4047d0
mov dword [ebp - 0x14], edx
jmp 0x4047d4
and dword [ebp - 0x14], 0
fild dword [ebp - 0x14]
jmp 0x4049a6
fcomp qword [ebp - 0x18]
fnstsw ax
test ah, 5
jp 0x4047eb
mov dword [ebp - 0x14], edx
jmp 0x4047ef
and dword [ebp - 0x14], 0
fild dword [ebp - 0x14]
jmp 0x4049a6
fcomp qword [ebp - 0x18]
fnstsw ax
test ah, 0x41
jne 0x404806
mov dword [ebp - 0x14], edx
jmp 0x40480a
and dword [ebp - 0x14], 0
fild dword [ebp - 0x14]
jmp 0x4049a6
fld qword [ebp - 0x18]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jnp 0x404827
mov dword [ebp - 0x14], edx
jmp 0x40482b
and dword [ebp - 0x14], 0
fild dword [ebp - 0x14]
jmp 0x4049a6
fld qword [ebp - 0x18]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jp 0x404848
mov dword [ebp - 0x14], edx
jmp 0x40484c
and dword [ebp - 0x14], 0
fild dword [ebp - 0x14]
jmp 0x4049a6
fcomp qword [ebp - 0x18]
fnstsw ax
test ah, 0x41
jp 0x404863
mov dword [ebp - 0x14], edx
jmp 0x404867
and dword [ebp - 0x14], 0
fild dword [ebp - 0x14]
jmp 0x4049a6
cmp ecx, 0x2a
je 0x4049a3
cmp ecx, 0x2b
je 0x40499e
cmp ecx, 0x2c
je 0x404999
jle 0x404979
cmp ecx, 0x2e
jle 0x40495f
cmp ecx, 0x34
jne 0x404979
fcom qword [0x459b30]
fnstsw ax
test ah, 5
jp 0x4048b3
mov esi, edx
jmp 0x4048b5
xor esi, esi
fld qword [0x459b30]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x4048d6
fld qword [ebp - 0x18]
fcomp qword [0x459b30]
fnstsw ax
test ah, 5
jnp 0x404953
test esi, esi
je 0x404904
fstp st(0)
sub esp, 0x10
fld1
fstp qword [esp + 8]
fld qword [ebp - 0x18]
fstp qword [esp]
call fcn.0041f71a
fld qword [0x459b30]
fucompp
fnstsw ax
test ah, 0x44
jp 0x404955
fld qword [ebp - 0x60]
fchs
fld qword [ebp - 0x18]
sub esp, 0x10
fstp qword [esp + 8]
fstp qword [esp]
call fcn.0041f75a
test esi, esi
fstp qword [ebx]
je 0x40497b
fld qword [0x45bcb8]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [ebp - 0x18]
fstp qword [esp]
call fcn.0041f71a
push ecx
push ecx
fstp qword [esp]
call fcn.0041f6e9
fld qword [0x45a7e0]
fucompp
fnstsw ax
test ah, 0x44
jp 0x40497b
fld qword [ebx]
fchs
jmp 0x4049a6
fstp st(0)
mov dword [ebx], 0x4575d8
xor edi, edi
jmp 0x40497b
fld qword [0x459b30]
fld qword [ebp - 0x18]
fucompp
fnstsw ax
test ah, 0x44
jp 0x404983
mov dword [ebx], 0x4575d8
xor edi, edi
fstp st(0)
mov dword [ebx + 8], edi
jmp 0x404e9d
cmp ecx, 0x2e
fdiv qword [ebp - 0x18]
fst qword [ebx]
jne 0x404979
push ecx
push ecx
fstp qword [esp]
call fcn.0041f6f2
jmp 0x4049a6
fmul qword [ebp - 0x18]
jmp 0x4049a6
fsub qword [ebp - 0x18]
jmp 0x4049a6
fadd qword [ebp - 0x18]
fstp qword [ebx]
jmp 0x40497b
mov eax, dword [esi + 8]
dec eax
je 0x4049e0
dec eax
je 0x4049b8
mov eax, dword [ebp - 0xc]
jmp 0x4049f4
fld qword [esi]
push ecx
push ecx
fstp qword [esp]
push 0x4642ac
lea eax, [ebp - 0x410]
push pe_nt_image_headers32
push eax
call fcn.0040aa6c
add esp, 0x14
lea eax, [ebp - 0x410]
jmp 0x4049f4
lea eax, [ebp - 0x410]
push eax
push dword [esi + 4]
push dword [esi]
call fcn.004018f5
add esp, 0xc
mov dword [ebp - 8], eax
mov eax, dword [edi + 8]
dec eax
je 0x404a2d
dec eax
je 0x404a05
mov eax, dword [ebp - 0x40]
jmp 0x404a41
fld qword [edi]
push ecx
push ecx
fstp qword [esp]
push 0x4642ac
lea eax, [ebp - 0x180]
push pe_nt_image_headers32
push eax
call fcn.0040aa6c
add esp, 0x14
lea eax, [ebp - 0x180]
jmp 0x404a41
lea eax, [ebp - 0x180]
push eax
push dword [edi + 4]
push dword [edi]
call fcn.004018f5
add esp, 0xc
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 8]
add eax, 0xffffffe3
cmp eax, 7
mov dword [ebp - 0x20], 1
ja case.default.0x404a5a
jmp dword [eax*4 + 0x40535b]
cmp byte [0x464371], 0
push dword [ebp - 8]
push dword [ebp - 0x2c]
jne 0x404a77
call fcn.00441439
jmp 0x404a98
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
test eax, eax
jne 0x404b98
xor eax, eax
inc eax
jmp 0x404b9a
push dword [ebp - 8]
push dword [ebp - 0x2c]
call fcn.004545c0
pop ecx
pop ecx
jmp 0x404a7d
mov al, byte [0x464371]
test al, al
push dword [ebp - 8]
push dword [ebp - 0x2c]
jne 0x404ab2
call fcn.00441439
jmp 0x404ac3
cmp al, 2
jne 0x404abe
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
jmp 0x404ac5
call fcn.004545c0
pop ecx
pop ecx
xor ecx, ecx
test eax, eax
setne cl
mov eax, ecx
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp case.0x4045b2.36
mov al, byte [0x464371]
test al, al
push dword [ebp - 8]
push dword [ebp - 0x2c]
jne 0x404aef
call fcn.00441439
jmp 0x404b00
cmp al, 2
jne 0x404afb
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
jmp 0x404b02
call fcn.004545c0
pop ecx
pop ecx
test eax, eax
jmp 0x404b5f
mov al, byte [0x464371]
test al, al
push dword [ebp - 8]
push dword [ebp - 0x2c]
jne 0x404b1c
call fcn.00441439
jmp 0x404b2d
cmp al, 2
jne 0x404b28
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
jmp 0x404b2f
call fcn.004545c0
pop ecx
pop ecx
test eax, eax
jmp 0x404b92
mov al, byte [0x464371]
test al, al
push dword [ebp - 8]
push dword [ebp - 0x2c]
jne 0x404b49
call fcn.00441439
jmp 0x404b5a
cmp al, 2
jne 0x404b55
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
jmp 0x404b5c
call fcn.004545c0
pop ecx
pop ecx
cmp eax, 0xffffffff
jle 0x404b98
jmp 0x404a85
mov al, byte [0x464371]
test al, al
push dword [ebp - 8]
push dword [ebp - 0x2c]
jne 0x404b7c
call fcn.00441439
jmp 0x404b8d
cmp al, 2
jne 0x404b88
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
jmp 0x404b8f
call fcn.004545c0
pop ecx
pop ecx
cmp eax, 1
jl 0x404a85
xor eax, eax
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp case.0x4045b2.36
cmp dword [esi + 8], 3
jne 0x404bb5
mov ecx, dword [esi]
call fcn.00401c49
jmp 0x404bbe
push dword [ebp - 8]
call fcn.00454880
pop ecx
cmp dword [ebp - 0x1c], 0
mov dword [ebp - 0x5c], eax
je 0x404bdf
mov ecx, dword [ebp - 0x1c]
push eax
push dword [ebp - 8]
call fcn.0041d197
test eax, eax
je 0x404bdf
mov eax, dword [ebp - 0x1c]
jmp 0x404d2b
cmp dword [edi + 8], 3
jne 0x404bee
mov ecx, dword [edi]
call fcn.00401c49
jmp 0x404bf7
push dword [ebp - 0x2c]
call fcn.00454880
pop ecx
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0x14], eax
lea eax, [eax + ecx + 1]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x50]
test eax, eax
je 0x404c1f
cmp dword [ebp - 4], 0
jne 0x404c1f
mov ecx, dword [ebp - 0x30]
dec ecx
cmp dword [ebp - 0x10], ecx
jne 0x404c1f
mov dword [ebp - 0x48], eax
jmp 0x404c65
mov eax, dword [ebp - 0x30]
dec eax
cmp dword [ebp - 0x10], eax
jge 0x404c61
mov eax, dword [ebp - 0x48]
mov eax, dword [ebp + eax - 0x1410]
cmp dword [eax + 8], 0xc
jne 0x404c61
mov eax, dword [ebp - 4]
test eax, eax
je 0x404c61
mov eax, dword [ebp + eax*4 - 0xc18]
cmp dword [eax + 8], 3
jne 0x404c61
mov eax, dword [eax]
mov cl, byte [eax + 0xf]
cmp cl, 2
jne 0x404c5c
mov ecx, dword [eax + 4]
mov cl, byte [ecx + 0xf]
cmp cl, 3
je 0x404c1a
and dword [ebp - 0x48], 0
cmp dword [ebp - 0x48], 0
je 0x404d32
mov ecx, dword [ebp - 0x48]
call fcn.00401c8a
cmp eax, dword [ebp - 0x2c]
mov dword [ebp - 0x28], eax
jne 0x404c9d
push dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x48]
push dword [ebp - 8]
call fcn.0041d197
test eax, eax
je 0x404d32
mov eax, dword [ebp - 0x50]
cmp dword [ebp - 0x48], eax
jmp 0x404d03
cmp eax, dword [ebp - 8]
je 0x404d32
mov eax, dword [ebp - 0x20]
mov esi, dword [ebp - 0x48]
push 1
push 0
dec eax
push eax
push 0
mov ecx, esi
call fcn.0040152b
test eax, eax
je 0x4051f2
mov ecx, esi
call fcn.00401c8a
mov edi, dword [ebp - 0x14]
test edi, edi
mov dword [ebp - 0x28], eax
je 0x404ce1
push edi
push dword [ebp - 0x2c]
push eax
call fcn.00454280
add esp, 0xc
mov eax, dword [ebp - 0x5c]
inc eax
push eax
mov eax, dword [ebp - 0x28]
push dword [ebp - 8]
add edi, eax
push edi
call fcn.00454280
add esp, 0xc
push 0
mov ecx, esi
call fcn.0041cf68
cmp esi, dword [ebp - 0x50]
je 0x4052dc
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x1414]
mov eax, dword [eax + 0xc]
dec dword [ebp - 4]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0xc14]
mov eax, dword [eax]
mov dword [ebx], eax
jmp 0x404ebf
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax]
sub ecx, dword [ebp - 0x24]
mov eax, dword [ebp + 0x18]
add ecx, dword [eax]
mov eax, dword [ebp - 0x20]
cmp eax, ecx
ja 0x404d50
mov ecx, dword [ebp - 0x24]
add dword [ebp - 0x24], eax
mov dword [ebx], ecx
jmp 0x404da4
cmp eax, 0x1001
jae 0x404d7a
cmp dword [ebp - 0x54], 0x9c40
jae 0x404d7a
mov eax, dword [ebp - 0x20]
add eax, 3
and eax, 0xfffffffc
call fcn.00454e20
mov eax, esp
mov dword [ebx], eax
mov eax, dword [ebp - 0x20]
add dword [ebp - 0x54], eax
jmp 0x404da4
cmp dword [ebp - 0x34], 0x64
je 0x4051de
push dword [ebp - 0x20]
call fcn.0043e5d0
test eax, eax
pop ecx
mov ecx, dword [ebp - 0x34]
mov dword [ebp + ecx*4 - 0x310], eax
mov dword [ebx], eax
je 0x4051de
inc dword [ebp - 0x34]
cmp dword [ebp - 0x14], 0
je 0x404dba
push dword [ebp - 0x14]
push dword [ebp - 0x2c]
push dword [ebx]
call fcn.00454280
add esp, 0xc
mov eax, dword [ebp - 0x5c]
inc eax
push eax
mov eax, dword [ebx]
add eax, dword [ebp - 0x14]
push dword [ebp - 8]
push eax
call fcn.00454280
add esp, 0xc
cmp dword [edi + 8], 0
je 0x404677
cmp dword [esi + 8], 0
je 0x404677
mov dword [ebp - 0x20], 4
jmp case.0x4045b2.36
cmp dword [esi + 8], 3
jne 0x4043c2
mov eax, ecx
mov dword [ebx + 8], edx
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x404ec6
cmp edi, edx
jne 0x404e22
cmp dword [esi + 8], edx
jne 0x404e1a
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x404e3c
push ecx
call fcn.00401a01
jmp 0x404e3b
cmp edi, 2
jne 0x404e93
cmp dword [esi + 8], edi
jne 0x404e35
fld qword [esi]
call fcn.0045540c
jmp 0x404e3c
push ecx
call fcn.00401a29
pop ecx
cmp dword [ebx + 8], 0x33
jne 0x404e64
test edx, edx
jl 0x404e5f
jg 0x404e4f
cmp eax, 0x100
jb 0x404e5f
test edx, edx
jg 0x404e5f
jl 0x404e5a
cmp eax, 0xffffffff
ja 0x404e5f
movzx eax, byte [eax]
jmp 0x404e61
xor eax, eax
cdq
jmp 0x404e85
test edx, edx
jl 0x404e81
jg 0x404e6e
test eax, eax
jb 0x404e81
test edx, edx
jg 0x404e81
jl 0x404e79
cmp eax, 0xffffffff
ja 0x404e81
and dword [ebx + 4], 0
not eax
jmp 0x404e88
not eax
not edx
mov dword [ebx + 4], edx
mov dword [ebx], eax
mov dword [ebx + 8], 1
jmp 0x404ec6
and dword [ebx + 8], 0
mov dword [ebx], 0x4575d8
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x404ec6
push ebx
mov ecx, esi
call fcn.0040178c
mov al, byte [esi + 0xf]
cmp al, 2
jne 0x404eb9
mov eax, dword [esi + 4]
mov al, byte [eax + 0xf]
cmp al, 4
je 0x404ec6
mov dword [ebx], esi
mov dword [ebx + 8], 3
cmp dword [ebx + 0xc], 0
je 0x404fcc
mov ecx, dword [ebx + 8]
mov eax, ecx
sub eax, 0
je 0x404f06
sub eax, 3
je 0x404efd
dec eax
jne 0x404f0b
mov eax, dword [ebx]
push 0
push 1
push 0
push 1
push eax
mov dword [ebp - 0xc], eax
call fcn.00401ab6
add esp, 0x14
mov dword [ebp - 0x58], eax
jmp 0x404f0e
mov ecx, dword [ebx]
call fcn.00401c8a
jmp 0x404ee4
mov eax, dword [ebx]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x58], ecx
mov eax, dword [ebp - 0x58]
dec eax
je 0x404f50
dec eax
je 0x404f25
mov ecx, dword [ebp - 0xc]
xor eax, eax
cmp byte [ecx], al
setne al
mov edi, eax
jmp 0x404f6e
cmp dword [ebx + 8], 2
jne 0x404f2f
fld qword [ebx]
jmp 0x404f38
push dword [ebp - 0xc]
call fcn.004011d5
pop ecx
fld qword [0x459b30]
xor edi, edi
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jnp 0x404f6e
inc edi
jmp 0x404f6e
xor edi, edi
inc edi
cmp dword [ebx + 8], edi
jne 0x404f5f
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
jmp 0x404f68
push dword [ebp - 0xc]
call fcn.00401a01
pop ecx
or eax, edx
jne 0x404f6e
xor edi, edi
mov ecx, dword [ebx + 0xc]
cmp dword [ecx + 8], 0x19
je 0x404fdb
mov esi, dword [ebp - 0x10]
xor eax, eax
cmp dword [ecx + 8], 0x1a
sete al
cmp edi, eax
jne 0x405003
inc esi
cmp dword [ebp + esi*4 - 0x1414], ecx
mov dword [ebp - 0x10], esi
je 0x404fa1
inc esi
cmp dword [ebp + esi*4 - 0x1414], ecx
jne 0x404f94
mov dword [ebp - 0x10], esi
mov eax, dword [ebp + esi*4 - 0x1414]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x404fb5
cmp dword [ecx + 8], 0x19
jne 0x404f7a
mov eax, edi
cdq
mov dword [ebx + 8], 1
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 0xc], ecx
jmp 0x404ec6
mov eax, dword [ebp - 4]
inc dword [ebp - 4]
mov dword [ebp + eax*4 - 0xc14], ebx
jmp 0x405003
test edi, edi
jne 0x405003
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp + eax*4 - 0x1414]
cmp eax, dword [ebx + 0xc]
je 0x405003
mov ebx, dword [ebx + 0xc]
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp dword [ebp + eax*4 - 0x1414], ebx
jne 0x404ff4
inc dword [ebp - 0x10]
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
jmp 0x403956
mov eax, dword [ebx]
push dword [eax + 0x10]
push edi
jmp 0x4051e5
push dword [ebx + 4]
mov ecx, dword [ebp - 0x50]
push dword [ebx + 0xc]
call fcn.0041d113
jmp 0x4052dc
mov ecx, dword [ebp - 0x50]
push 1
push edx
push 0xffffffffffffffff
push dword [ebx]
jmp 0x4052d7
mov eax, dword [eax]
push dword [eax + 0x10]
mov ecx, dword [ebp - 0x4c]
push 0
push str.Caller_must_pass_a_variable_to_this_ByRef_parameter.__The_current_thread_will_exit.
call fcn.0044a1c5
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x44]
push eax
push esi
call fcn.00401bb9
add esp, 0xc
jmp 0x4051f2
push dword [ebp - 0x28]
call fcn.00454880
pop ecx
mov ecx, dword [ebp - 0x28]
cmp ecx, dword [0x467c00]
jne 0x40509a
cmp eax, 0x40
jb 0x40509a
push eax
push ecx
mov ecx, edi
call fcn.0041d113
and dword [0x467c00], 0
and dword [0x467c04], 0
jmp 0x4050a7
push 1
push 0
push eax
push ecx
mov ecx, edi
call fcn.0040152b
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x44]
push eax
push esi
call fcn.00401bb9
add esp, 0xc
jmp 0x4052dc
push dword [esi]
jmp 0x4051e3
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x44]
push eax
push esi
call fcn.00401bb9
add esp, 0xc
and dword [ebp - 0x68], 0
jmp 0x4052dc
mov eax, dword [ebp - 0x4c]
cmp byte [eax], 3
je 0x4052dc
cmp edi, 1
jne 0x4052c1
mov ecx, dword [ebp - 0x50]
test ecx, ecx
mov edx, dword [ebp - 0xc14]
mov esi, edx
je 0x40510d
push edx
call fcn.0040178c
jmp 0x4052dc
mov edi, dword [ebp + 0x10]
mov eax, dword [edx + 8]
test eax, eax
mov ecx, dword [edi]
mov dword [ebp - 0x68], ecx
je 0x405135
cmp eax, 1
je 0x405169
cmp eax, 2
je 0x40514d
jle 0x4052dc
cmp eax, 4
jg 0x4052dc
cmp eax, 3
jne 0x405185
mov ecx, dword [edx]
call fcn.00401c8a
mov dword [ebp - 0x28], eax
mov ecx, dword [esi]
call fcn.00401c49
jmp 0x405191
fld qword [edx]
push ecx
push ecx
fstp qword [esp]
push 0x4642ac
push pe_nt_image_headers32
push ecx
call fcn.0040aa6c
add esp, 0x14
jmp 0x40517d
push ecx
push dword [edx + 4]
push dword [edx]
call fcn.004018f5
push eax
call fcn.00454880
add esp, 0x10
inc eax
add dword [edi], eax
jmp 0x4052dc
mov edx, dword [edx]
push edx
mov dword [ebp - 0x28], edx
call fcn.00454880
pop ecx
mov ecx, dword [ebp - 0x4c]
mov ecx, dword [ecx + 4]
mov esi, eax
mov eax, dword [ebp + 8]
lea eax, [eax + eax*2]
mov ax, word [ecx + eax*4 + 2]
inc esi
cmp ax, 0xff
mov dword [ebp - 0x20], esi
jae 0x4051b5
mov eax, 0xff
jmp 0x4051b8
movzx eax, ax
mov ecx, dword [ebp + 0x20]
lea eax, [eax + ecx + 1]
cmp esi, eax
jbe 0x4052a9
mov ecx, dword [ebp + 0x18]
mov ebx, dword [ecx]
sub ebx, eax
add ebx, esi
push ebx
call fcn.0043e5d0
test eax, eax
pop ecx
mov dword [ebp + 0x10], eax
jne 0x405201
push 0x4575d8
push 0
mov ecx, dword [ebp - 0x4c]
push str.Out_of_memory.__The_current_thread_will_exit.
call fcn.0044a1c5
mov eax, dword [ebp + 0xc]
and dword [ebp - 0x68], 0
and dword [eax], 0
jmp 0x4052dc
cmp ebx, 0x400000
jbe 0x40520f
inc dword [0x467c08]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov esi, dword [edi]
sub esi, eax
je 0x405227
push esi
push eax
push dword [ebp + 0x10]
call fcn.00454280
add esp, 0xc
push dword [ebp - 0x20]
mov eax, dword [ebp + 0x10]
push dword [ebp - 0x28]
add eax, esi
push eax
mov dword [edi], eax
mov dword [ebp - 0x68], eax
call fcn.00454280
mov eax, dword [ebp + 0x14]
push dword [eax]
call fcn.0043db8d
mov eax, dword [ebp + 0x18]
add esp, 0x10
cmp dword [eax], 0x400000
jbe 0x40525b
dec dword [0x467c08]
mov eax, dword [ebp + 0x14]
mov edx, dword [eax]
mov eax, dword [ebp + 0x18]
add edx, dword [eax]
xor eax, eax
cmp dword [ebp + 8], eax
mov dword [ebp - 0x10], eax
jle 0x405297
mov ecx, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x14]
mov esi, dword [esi]
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
cmp eax, esi
jb 0x40528b
cmp eax, edx
jae 0x40528b
sub eax, esi
add eax, dword [ebp + 0x10]
mov dword [ecx], eax
mov eax, dword [ebp - 0x10]
inc eax
cmp eax, dword [ebp + 8]
mov dword [ebp - 0x10], eax
jl 0x40526f
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
mov esi, dword [ebp - 0x20]
mov dword [ecx], eax
mov eax, dword [ebp + 0x18]
mov dword [eax], ebx
jmp 0x4052bd
mov eax, dword [edi]
cmp eax, dword [ebp - 0x28]
je 0x4052bd
push esi
push dword [ebp - 0x28]
push eax
call fcn.00454a70
add esp, 0xc
add dword [edi], esi
jmp 0x4052dc
mov ecx, dword [ebp - 0x50]
test ecx, ecx
je 0x4052dc
cmp dword [ebp - 0x68], 0
je 0x4052dc
push 1
push 0
push 0xffffffffffffffff
push dword [ebp - 0x68]
call fcn.0040152b
mov esi, dword [ebp - 0x34]
jmp 0x4052ef
push dword [ebp + esi*4 - 0x314]
dec esi
call fcn.0043db8d
pop ecx
test esi, esi
jne 0x4052e1
mov eax, dword [ebp - 0x68]
lea esp, [ebp - 0x3420]
pop edi
pop esi
pop ebx
leave
ret 0x1c