Function at 0x402dcc
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x3418
call fcn.004540a0
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 - 0x2c], 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 [0x466148]
push esi
push edi
mov dword [ebp - 0x64], 0x4565d8
mov dword [ebp - 0x60], edx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x10], eax
test eax, eax
je 0x402e32
cmp dword [eax], 0
je 0x402e32
mov esi, eax
jmp 0x402e34
xor esi, esi
test esi, esi
mov dword [ebp - 0x28], esi
je 0x402e44
cmp ecx, dword [esi]
jb 0x402e4d
jmp 0x403457
cmp byte [ecx], 0
je 0x40366c
cmp dword [ebp - 4], 0x1ff
jg 0x405239
push dword [ebp - 0xc]
call fcn.00401a9c
mov ebx, eax
mov al, byte [ebx]
test al, al
pop ecx
mov dword [ebp - 0xc], ebx
je 0x40344f
test esi, esi
je 0x402e7e
cmp ebx, dword [esi]
jae 0x40344f
mov ecx, dword [ebp - 4]
movsx eax, al
shl ecx, 4
cmp eax, 0x5e
lea edi, [ebx + 1]
mov dl, byte [edi]
mov dword [ebp - 0x48], ecx
lea esi, [ebp + ecx - 0x3418]
mov byte [ebp - 5], dl
jg 0x403365
je 0x403346
cmp eax, 0x2c
jg 0x4030cf
je 0x4030c3
sub eax, 0x21
je 0x4030ae
dec eax
je 0x403034
sub eax, 4
je 0x402fe5
dec eax
dec eax
je 0x402fa5
dec eax
je 0x402f99
dec eax
je 0x402f4d
dec eax
jne 0x403376
cmp dl, 0x3d
jne 0x402efc
mov ebx, edi
mov dword [esi + 8], 0xd
jmp 0x403440
cmp dword [ebp - 4], 0
je 0x402f0b
mov ecx, dword [ebp + ecx - 0x3420]
jmp 0x402f0e
push 0xa
pop ecx
cmp ecx, 0xa
jge 0x402f32
cmp dl, 0x2b
jne 0x402f26
mov ebx, edi
mov dword [esi + 8], 7
jmp 0x403440
mov dword [esi + 8], 0x2a
jmp 0x403440
cmp dl, 0x2b
jne 0x402f45
mov ebx, edi
mov dword [esi + 8], 0x35
jmp 0x403440
dec dword [ebp - 4]
jmp 0x403440
cmp dl, 0x3d
jne 0x402f60
mov ebx, edi
mov dword [esi + 8], 0xf
jmp 0x403440
cmp dl, 0x2a
jne 0x402f73
mov ebx, edi
mov dword [esi + 8], 0x34
jmp 0x403440
cmp dword [ebp - 4], 0
je 0x402f82
mov ecx, dword [ebp + ecx - 0x3420]
jmp 0x402f85
push 0xa
pop ecx
xor eax, eax
cmp ecx, 0xa
setge al
dec eax
and eax, 0xfffffff9
add eax, 0x33
jmp 0x40302c
mov dword [esi + 8], 9
jmp 0x403440
cmp dword [ebp - 4], 0
je 0x402fcf
cmp dword [ebp + ecx - 0x3420], 0xa
jge 0x402fcf
cmp dword [ebp - 4], 0x1fe
jg 0x405239
inc dword [ebp - 4]
mov ebx, dword [ebp - 0xc]
mov dword [esi + 8], 0x24
mov eax, dword [ebp - 4]
shl eax, 4
mov dword [ebp + eax - 0x3410], 0xa
jmp 0x403440
cmp dl, 0x26
jne 0x402ff8
mov ebx, edi
mov dword [esi + 8], 0x1b
jmp 0x403440
cmp dl, 0x3d
jne 0x40300b
mov ebx, edi
mov dword [esi + 8], 0x14
jmp 0x403440
cmp dword [ebp - 4], 0
je 0x40301a
mov ecx, dword [ebp + ecx - 0x3420]
jmp 0x40301d
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 0x403440
cmp dword [ebp - 4], 0
je 0x40305b
cmp dword [ebp + ecx - 0x3420], 0xa
jge 0x40305b
cmp dword [ebp - 4], 0x1fe
jg 0x405239
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 - 0x3410], 0
mov dword [ebp + eax - 0x3418], ecx
mov dword [ebp - 0xc], edi
mov eax, dword [ebp - 0xc]
mov al, byte [eax]
test al, al
je 0x405239
cmp al, 0x22
jne 0x403093
inc dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov al, byte [eax]
cmp al, 0x22
jne 0x4030a0
mov ecx, dword [ebp - 0x24]
inc dword [ebp - 0x24]
inc dword [ebp - 0xc]
mov byte [ecx], al
jmp 0x403076
mov eax, dword [ebp - 0x24]
inc dword [ebp - 0x24]
mov byte [eax], 0
jmp 0x403444
cmp dl, 0x3d
je 0x403186
mov dword [esi + 8], 0x30
jmp 0x403440
mov dword [esi + 8], 0xb
jmp 0x403440
sub eax, 0x2d
je 0x403229
dec eax
dec eax
je 0x4031e3
sub eax, 0xb
je 0x4031c4
dec eax
dec eax
je 0x40316c
dec eax
je 0x40314d
dec eax
je 0x403106
dec eax
jne 0x403376
mov dword [esi + 8], 0x19
jmp 0x403440
movsx eax, dl
sub eax, 0x3d
je 0x40313f
dec eax
je 0x40311d
mov dword [esi + 8], 0x20
jmp 0x403440
add ebx, 2
cmp byte [ebx], 0x3d
jne 0x403131
mov dword [esi + 8], 0x16
jmp 0x403440
mov ebx, edi
mov dword [esi + 8], 0x29
jmp 0x403440
mov ebx, edi
mov dword [esi + 8], 0x22
jmp 0x403440
cmp dl, 0x3d
jne 0x403160
mov ebx, edi
mov dword [esi + 8], 0x1e
jmp 0x403440
mov dword [esi + 8], 0x1d
jmp 0x403440
movsx eax, dl
sub eax, 0x3c
je 0x4031a2
dec eax
je 0x403194
dec eax
je 0x403186
mov dword [esi + 8], 0x21
jmp 0x403440
mov ebx, edi
mov dword [esi + 8], 0x1f
jmp 0x403440
mov ebx, edi
mov dword [esi + 8], 0x23
jmp 0x403440
add ebx, 2
cmp byte [ebx], 0x3d
jne 0x4031b6
mov dword [esi + 8], 0x15
jmp 0x403440
mov ebx, edi
mov dword [esi + 8], 0x28
jmp 0x403440
cmp dl, 0x3d
jne 0x4031d7
mov ebx, edi
mov dword [esi + 8], 0xc
jmp 0x403440
mov dword [esi + 8], 0x18
jmp 0x403440
cmp dl, 0x3d
jne 0x4031f6
mov ebx, edi
mov dword [esi + 8], 0x10
jmp 0x403440
cmp dl, 0x2f
jne 0x40321d
add ebx, 2
cmp byte [ebx], 0x3d
jne 0x40320f
mov dword [esi + 8], 0x11
jmp 0x403440
mov ebx, edi
mov dword [esi + 8], 0x2e
jmp 0x403440
mov dword [esi + 8], 0x2d
jmp 0x403440
cmp dl, 0x3d
jne 0x40323c
mov ebx, edi
mov dword [esi + 8], 0xe
jmp 0x403440
cmp dword [ebp - 4], 0
je 0x40324b
mov ecx, dword [ebp + ecx - 0x3420]
jmp 0x40324e
push 0xa
pop ecx
cmp ecx, 0xa
jge 0x403272
cmp dl, 0x2d
jne 0x403266
mov ebx, edi
mov dword [esi + 8], 8
jmp 0x403440
mov dword [esi + 8], 0x2b
jmp 0x403440
cmp dl, 0x2d
jne 0x403285
mov ebx, edi
mov dword [esi + 8], 0x36
jmp 0x403440
cmp dl, 0x30
mov dword [esi + 8], 0x2f
jl 0x403296
cmp dl, 0x39
jle 0x40329f
cmp dl, 0x2e
jne 0x403440
lea edi, [ebx + 2]
jmp 0x4032a5
inc edi
movsx eax, byte [edi]
push eax
push 0x45a190
call fcn.00453c30
test eax, eax
pop ecx
pop ecx
je 0x4032a4
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x4032c8
cmp edi, dword [eax]
jae 0x403440
push edi
call fcn.00401a9c
cmp byte [eax], 0x2a
pop ecx
jne 0x4032de
cmp byte [eax + 1], 0x2a
je 0x403440
cmp dword [ebp - 4], 0
je 0x403308
mov eax, dword [ebp - 0x48]
cmp dword [ebp + eax - 0x3420], 0xa
jge 0x403308
cmp dword [ebp - 4], 0x1fe
jg 0x405239
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 - 0xc]
shl eax, 4
push ebx
push dword [ebp - 0xc]
mov dword [ebp + eax - 0x3410], 4
push esi
mov dword [ebp + eax - 0x3418], esi
call fcn.00453500
add esi, ebx
add esp, 0xc
mov byte [esi], 0
inc esi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0xc], edi
jmp 0x403444
cmp dl, 0x3d
jne 0x403359
mov ebx, edi
mov dword [esi + 8], 0x13
jmp 0x403440
mov dword [esi + 8], 0x26
jmp 0x403440
sub eax, 0x7c
je 0x403419
dec eax
dec eax
je 0x403410
cmp byte [ebx], 0x2e
jne 0x4033a5
cmp dl, 0x3d
jne 0x40338e
mov ebx, edi
mov dword [esi + 8], 0x17
jmp 0x403440
cmp dl, 0x20
je 0x403398
cmp dl, 9
jne 0x4033a5
mov dword [esi + 8], 0x24
jmp 0x403440
inc edi
movsx eax, byte [edi]
push eax
push 0x45a190
call fcn.00453c30
test eax, eax
pop ecx
pop ecx
je 0x4033a4
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x4033c8
cmp edi, dword [eax]
jae 0x4034e3
mov eax, edi
sub eax, ebx
cmp eax, 3
jne 0x4032de
mov al, byte [ebx]
cmp al, 0x6e
je 0x4033e3
cmp al, 0x4e
jne 0x4032de
cmp byte [ebp - 5], 0x6f
je 0x4033f3
cmp byte [ebp - 5], 0x4f
jne 0x4032de
mov bl, byte [ebx + 2]
cmp bl, 0x74
je 0x403404
cmp bl, 0x54
jne 0x4032de
mov dword [esi + 8], 0x1c
jmp 0x40333e
mov dword [esi + 8], 0x31
jmp 0x403440
cmp dl, 0x7c
jne 0x403429
mov ebx, edi
mov dword [esi + 8], 0x1a
jmp 0x403440
cmp dl, 0x3d
jne 0x403439
mov ebx, edi
mov dword [esi + 8], 0x12
jmp 0x403440
mov dword [esi + 8], 0x25
inc ebx
mov dword [ebp - 0xc], ebx
inc dword [ebp - 4]
mov esi, dword [ebp - 0x28]
jmp 0x402e4d
test esi, esi
je 0x40366c
cmp dword [ebp - 4], 0x1ff
jg 0x405239
cmp byte [esi + 8], 0
je 0x4034b2
cmp dword [ebp - 4], 0
je 0x403499
mov eax, dword [ebp - 4]
shl eax, 4
lea eax, [ebp + eax - 0x3410]
cmp dword [eax - 0x10], 0xa
jge 0x403499
cmp dword [ebp - 4], 0x1fe
jg 0x405239
inc dword [ebp - 4]
mov dword [eax], 0x24
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
shl eax, 4
mov dword [ebp + eax - 0x3410], 0x37
jmp 0x40364c
mov eax, dword [esi]
mov cl, byte [eax]
cmp cl, byte [0x46108d]
jne 0x4035c7
movzx edi, word [esi + 0xa]
add edi, eax
mov esi, 0x45a190
movsx eax, byte [edi]
push eax
push esi
call fcn.00453c30
test eax, eax
pop ecx
pop ecx
jne 0x4034e0
inc edi
jmp 0x4034cd
mov ebx, dword [ebp - 0xc]
cmp dword [ebp - 4], 0
je 0x403515
mov eax, dword [ebp - 4]
shl eax, 4
lea eax, [ebp + eax - 0x3410]
cmp dword [eax - 0x10], 0xa
jge 0x403515
cmp dword [ebp - 4], 0x1fe
jg 0x405239
inc dword [ebp - 4]
mov ebx, dword [ebp - 0xc]
mov dword [eax], 0x24
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 4]
mov dword [ebp - 0x28], edi
sub dword [ebp - 0x28], ebx
push dword [ebp - 0x28]
shl esi, 4
push ebx
push eax
mov dword [ebp + esi - 0x3410], 5
mov dword [ebp + esi - 0x3414], eax
call fcn.00453500
mov eax, dword [ebp - 0x10]
add esp, 0xc
mov dword [ebp - 0x18], eax
jmp 0x40354f
cmp ecx, edi
jae 0x40355b
add eax, 0xc
mov ecx, dword [eax]
test ecx, ecx
mov dword [ebp - 0x10], eax
jne 0x40354b
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x18]
push 0xc
cdq
pop ecx
idiv ecx
sub dword [ebp - 0x10], ecx
lea ebx, [eax + eax*2]
shl ebx, 2
lea eax, [ebx + 0xc]
add eax, 3
and eax, 0xfffffffc
call fcn.004540a0
mov dword [ebp - 0x48], esp
push ebx
push dword [ebp - 0x18]
push dword [ebp - 0x48]
call fcn.00453500
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x24]
add esp, 0xc
and dword [ebx + eax], 0
cmp dword [eax], 0
je 0x4035ab
mov edx, ecx
sub edx, dword [ebp - 0xc]
add dword [eax], edx
add eax, 0xc
jmp 0x40359a
add ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x48]
mov dword [ebp + esi - 0x3418], eax
mov byte [ecx], 0
inc ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0xc], edi
jmp 0x40365a
cmp dword [ebp - 4], 0
je 0x4035f6
mov eax, dword [ebp - 4]
shl eax, 4
lea eax, [ebp + eax - 0x3410]
cmp dword [eax - 0x10], 0xa
jge 0x4035f6
cmp dword [ebp - 4], 0x1fe
jg 0x405239
inc dword [ebp - 4]
mov dword [eax], 0x24
mov ecx, dword [esi + 4]
mov al, byte [ecx + 0xf]
cmp al, 2
jne 0x403606
mov eax, dword [ecx + 4]
mov al, byte [eax + 0xf]
cmp al, 3
jne 0x403630
cmp byte [0x4634a5], 0
jne 0x40361d
call fcn.00401c69
cmp dword [eax], 0
je 0x403630
mov eax, dword [ebp - 4]
shl eax, 4
mov dword [ebp + eax - 0x3410], 3
jmp 0x403649
mov eax, dword [ebp - 4]
shl eax, 4
and dword [ebp + eax - 0x3414], 0
mov dword [ebp + eax - 0x3410], 5
mov ecx, dword [esi + 4]
mov dword [ebp + eax - 0x3418], ecx
movzx eax, word [esi + 0xa]
add dword [ebp - 0xc], eax
add dword [ebp - 0x10], 0xc
inc dword [ebp - 4]
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
jmp 0x402e25
cmp dword [ebp - 4], 0x1ff
jg 0x405239
mov eax, dword [ebp - 4]
shl eax, 4
xor edi, edi
mov dword [ebp + eax - 0x3410], 0x38
lea eax, [ebp - 0x84]
inc edi
and dword [ebp - 0x18], 0
mov dword [ebp - 0x7c], 6
mov dword [ebp - 0xb18], eax
lea ecx, [ebp - 0x3418]
mov dword [ebp - 4], edi
mov esi, dword [ecx + 8]
lea eax, [ebp - 0xb18]
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 - 0x10], edx
jge 0x403746
cmp esi, 5
jne 0x403729
cmp dword [ecx + 4], 0
jne 0x403729
mov eax, dword [ecx]
mov bl, byte [eax + 0xf]
cmp bl, 2
jne 0x4036e7
mov edx, dword [eax + 4]
mov bl, byte [edx + 0xf]
cmp bl, 3
je 0x4036ff
mov dl, byte [eax + 0xf]
cmp dl, 2
jne 0x4036fa
mov eax, dword [eax + 4]
mov dl, byte [eax + 0xf]
cmp dl, 4
jne 0x403729
mov eax, dword [ecx + 0x18]
cmp eax, 0x17
jg 0x40370c
cmp eax, 0xc
jge 0x403722
cmp eax, 7
je 0x403722
cmp eax, 8
je 0x403722
cmp dword [ebp - 0x10], 0x35
je 0x403722
cmp dword [ebp - 0x10], 0x36
jne 0x403729
mov dword [ecx + 8], 3
mov eax, dword [ebp - 0x2c]
lea eax, [ebp + eax*4 - 0x1418]
mov dword [eax], ecx
mov eax, dword [eax]
add ecx, 0x10
and dword [eax + 0xc], 0
inc dword [ebp - 0x2c]
jmp 0x4036ad
mov edx, esi
sub edx, 9
je 0x4038d0
dec edx
je 0x403884
sub edx, 0xe
je 0x403894
sub edx, 0x1f
je 0x403876
dec edx
je 0x403866
movzx eax, byte [esi + 0x462460]
cdq
push 2
pop edi
idiv edi
movzx eax, byte [esi + 0x462460]
add edx, eax
mov eax, dword [ebp - 0x10]
movzx edi, byte [eax + 0x462460]
cmp edi, edx
jl 0x4037c0
cmp esi, 0x17
jg 0x4037a4
cmp esi, 0xc
jl 0x4037a4
cmp eax, 0x33
jne 0x4037c0
cmp eax, 0x34
jne 0x4038f9
cmp esi, 0x2f
jl 0x4037b7
cmp esi, 0x33
jle 0x4037c0
cmp esi, 0x1c
jne 0x4038f9
cmp esi, 0x1b
jg 0x4037db
cmp esi, 0x19
jl 0x4037db
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x4037db
mov eax, dword [ebp + eax*4 - 0x141c]
mov dword [eax + 0xc], ecx
cmp esi, 0xb
je 0x4037ec
inc dword [ebp - 4]
mov dword [ebp + ebx - 0xb18], ecx
jmp 0x40385b
cmp dword [ebp - 0x18], 0
jne 0x40385b
inc dword [ebp - 4]
cmp dword [ecx + 0x18], 0x38
mov dword [ebp + ebx - 0xb18], ecx
lea eax, [ecx + 0x10]
je 0x40385b
push 3
pop edi
cmp dword [eax + 0x18], 0x1d
jne 0x40385b
mov edx, dword [eax + 8]
cmp edx, edi
je 0x40384b
cmp edx, 5
jne 0x40385b
cmp dword [eax + 4], 0
jne 0x40385b
mov esi, dword [eax]
mov dl, byte [esi + 0xf]
cmp dl, 2
jne 0x403830
mov edx, dword [esi + 4]
mov dl, byte [edx + 0xf]
cmp dl, 3
je 0x403848
mov dl, byte [esi + 0xf]
cmp dl, 2
jne 0x403843
mov edx, dword [esi + 4]
mov dl, byte [edx + 0xf]
cmp dl, 4
jne 0x40385b
mov dword [eax + 8], edi
mov dword [eax + 0x18], 0xc
add eax, 0x20
cmp dword [eax + 8], 0x38
jne 0x403808
add ecx, 0x10
mov edi, dword [ebp - 4]
jmp 0x4036ad
cmp dword [ebp - 0x10], 6
je 0x40391c
cmp dword [ebp - 0x10], 0xa
jmp 0x4038f3
inc dword [ebp - 0x18]
mov dword [ebp + ebx - 0xb18], ecx
inc edi
add ecx, 0x10
mov dword [ebp + edi*4 - 0xb18], ecx
inc edi
add ecx, 0x10
jmp 0x4036aa
cmp dword [ebp - 0x10], 6
je 0x405239
mov esi, dword [ebp - 0x2c]
dec edi
cmp dword [ebp - 0x10], 0x19
lea edx, [ebp + edi*4 - 0xb18]
mov eax, dword [edx]
mov dword [ebp - 4], edi
mov dword [ebp + esi*4 - 0x1418], eax
jne 0x40373a
mov dword [eax + 0xc], ecx
inc edi
mov dword [edx], ecx
mov dword [ebp - 4], edi
add ecx, 0x10
jmp 0x40373e
cmp dword [ebp - 0x10], 0xa
jne 0x4038ef
dec edi
mov eax, dword [eax + edi*4]
add ecx, 0x10
cmp dword [eax + 8], 0x37
mov dword [ebp - 4], edi
jne 0x4036ad
dec dword [ebp - 0x18]
jmp 0x4038f9
cmp dword [ebp - 0x10], 6
je 0x405239
dec dword [ebp - 4]
mov eax, dword [ebp - 4]
mov eax, dword [ebp + eax*4 - 0xb18]
mov edx, dword [ebp - 0x2c]
and dword [eax + 0xc], 0
inc dword [ebp - 0x2c]
mov dword [ebp + edx*4 - 0x1418], eax
jmp 0x40385e
dec edi
xor ecx, ecx
mov dword [ebp - 4], edi
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0x14], ecx
cmp ecx, dword [ebp - 0x2c]
jge 0x405055
mov eax, ecx
shl eax, 2
mov ebx, dword [ebp + eax - 0x1418]
mov dword [ebp - 0x44], eax
mov eax, dword [ebx + 8]
cmp eax, 6
jge 0x403b13
cmp eax, 5
jne 0x404e9a
mov eax, dword [ebx + 4]
xor edi, edi
cmp eax, edi
jne 0x403a1c
mov ecx, dword [ebx]
push edi
call fcn.00401caf
mov esi, eax
inc esi
cmp esi, 1
jne 0x403999
mov eax, dword [ebx]
mov cl, byte [eax + 0xf]
cmp cl, 2
jne 0x403985
mov eax, dword [eax + 4]
mov cl, byte [eax + 0xf]
cmp cl, 3
je 0x404e93
mov dword [ebx], 0x4565d8
jmp 0x404344
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 0x4039b2
mov eax, dword [ebp - 0x24]
add dword [ebp - 0x24], esi
jmp 0x4039fe
cmp esi, 0x1001
jae 0x4039d8
cmp dword [ebp - 0x50], 0x9c40
jae 0x4039d8
mov eax, esi
add eax, 3
and eax, 0xfffffffc
call fcn.004540a0
add dword [ebp - 0x50], esi
mov dword [ebp - 0x30], esp
jmp 0x403a01
cmp dword [ebp - 0x34], 0x64
je 0x404ff9
push esi
call fcn.0043e9ea
cmp eax, edi
pop ecx
mov ecx, dword [ebp - 0x34]
mov dword [ebp + ecx*4 - 0x314], eax
je 0x404ff9
inc dword [ebp - 0x34]
mov dword [ebp - 0x30], eax
push dword [ebp - 0x30]
mov ecx, dword [ebx]
call fcn.00401caf
mov eax, dword [ebp - 0x30]
mov dword [ebx], eax
mov dword [ebx + 8], 4
jmp 0x404e9a
mov esi, dword [ebx]
mov dword [ebp - 0xc], eax
mov dword [ebx], 0x4565d8
mov dword [ebx + 8], edi
mov eax, dword [esi]
cmp eax, edi
je 0x403a9c
mov ecx, dword [ebp - 0xc]
cmp ecx, eax
jae 0x403a51
cmp edi, 0xfd
jge 0x403a59
mov al, byte [ecx]
mov byte [ebp + edi - 0x184], al
inc edi
inc ecx
cmp ecx, dword [esi]
mov dword [ebp - 0xc], ecx
jb 0x403a37
cmp edi, 0xfd
jl 0x403a61
cmp ecx, dword [esi]
jb 0x404e9a
mov ecx, dword [esi + 4]
push 0
call fcn.00401caf
mov ecx, 0xfd
sub ecx, edi
cmp eax, ecx
ja 0x404e9a
mov ecx, dword [esi + 4]
lea eax, [ebp + edi - 0x184]
push eax
call fcn.00401caf
add edi, eax
movzx eax, word [esi + 0xa]
add dword [ebp - 0xc], eax
add esi, 0xc
mov eax, dword [esi]
test eax, eax
jne 0x403a30
mov ecx, dword [ebp - 0xc]
jmp 0x403ab2
cmp edi, 0xfd
jge 0x403ac0
mov byte [ebp + edi - 0x184], al
inc edi
inc ecx
mov al, byte [ecx]
test al, al
jne 0x403aa1
cmp edi, 0xfd
jl 0x403ac9
cmp byte [ecx], 0
jne 0x404e9a
test edi, edi
je 0x404e9a
push 0
push 3
push edi
lea eax, [ebp - 0x184]
push eax
mov ecx, 0x463de0
mov byte [ebp + edi - 0x184], 0
call fcn.0041cc48
test eax, eax
je 0x40516b
mov cl, byte [eax + 0xf]
cmp cl, 2
jne 0x403b05
mov ecx, dword [eax + 4]
mov cl, byte [ecx + 0xf]
cmp cl, 3
jne 0x404e9a
jmp 0x404cf5
cmp eax, 0x37
jne 0x404058
mov eax, dword [ebx]
mov esi, dword [eax + 4]
movzx eax, byte [eax + 9]
cmp eax, edi
mov dword [ebp - 0x28], eax
jg 0x405239
cmp byte [esi + 0x31], 0
je 0x403c76
push dword [ebp - 0x28]
sub edi, eax
mov dword [ebx + 8], 1
mov eax, dword [esi]
mov dword [ebx], eax
lea eax, [ebp - 0x184]
mov dword [ebx + 4], eax
mov eax, dword [ebx + 0xc]
and dword [ebx + 0xc], 0
mov dword [ebp - 0x18], eax
lea eax, [ebp + edi*4 - 0xb18]
push eax
push ebx
mov dword [ebp - 4], edi
call dword [esi + 4]
mov ecx, dword [ebp - 0x60]
add esp, 0xc
test ecx, ecx
je 0x403b87
test edi, edi
jne 0x403b87
mov eax, dword [ebp - 0x2c]
dec eax
cmp dword [ebp - 0x14], eax
mov byte [ebp - 5], 1
je 0x403b8b
mov byte [ebp - 5], 0
mov edx, dword [ebx + 0xc]
test edx, edx
je 0x403c2a
cmp edx, dword [ebx]
jne 0x403c13
cmp byte [ebp - 5], 0
jne 0x405004
mov eax, dword [ebp - 0x2c]
dec eax
cmp dword [ebp - 0x14], eax
jge 0x403c13
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp + eax - 0x1414]
cmp dword [eax + 8], 0xc
jne 0x403c13
test edi, edi
je 0x403c13
mov eax, dword [ebp + edi*4 - 0xb1c]
cmp dword [eax + 8], 3
jne 0x403c13
mov eax, dword [eax]
mov cl, byte [eax + 0xf]
cmp cl, 2
jne 0x403bde
mov eax, dword [eax + 4]
mov cl, byte [eax + 0xf]
cmp cl, 3
jne 0x403c13
push dword [ebx + 4]
mov esi, dword [ebp + edi*4 - 0xb1c]
mov ecx, dword [esi]
dec edi
push edx
mov dword [ebp - 4], edi
call fcn.0041d673
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x1418]
mov eax, dword [eax + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [esi]
jmp 0x404cf5
cmp dword [ebp - 0x34], 0x64
je 0x40504e
mov eax, dword [ebp - 0x34]
inc dword [ebp - 0x34]
mov dword [ebp + eax*4 - 0x314], edx
mov eax, dword [ebp - 0x18]
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 8]
cmp eax, 1
je 0x404e9a
cmp eax, 2
je 0x404e9a
cmp byte [ebp - 5], 0
jne 0x405014
mov eax, dword [ebx]
mov dword [ebp - 0x30], eax
mov byte [ebp - 5], 0
cmp dword [ebp - 4], 0
jne 0x403e7a
mov eax, dword [ebp - 0x2c]
dec eax
cmp dword [ebp - 0x14], eax
jne 0x403e7a
mov cl, 1
jmp 0x403e7c
cmp dword [esi + 0x28], 0
jle 0x403d05
mov eax, dword [esi + 0xc]
dec eax
cmp eax, 0xffffffff
mov dword [ebp - 0x18], eax
jle 0x403cec
mov ecx, eax
shl ecx, 4
lea edx, [ebp + edi*4 - 0xb18]
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x58], edx
cmp eax, dword [ebp - 0x28]
jge 0x403cdd
sub dword [ebp - 0x58], 4
mov edx, dword [ebp - 0x58]
mov edx, dword [edx]
cmp dword [edx + 8], 3
mov dword [ebp - 0x10], edx
jne 0x403cdd
mov edx, dword [esi + 8]
mov edx, dword [edx + ecx]
cmp byte [edx + 0xf], 3
jb 0x403cdd
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call fcn.00401c84
mov ecx, dword [ebp - 0x10]
mov dword [ecx], eax
mov eax, dword [ebp - 0x18]
mov dword [ecx + 8], 4
mov ecx, dword [ebp - 0x20]
dec eax
sub ecx, 0x10
cmp eax, 0xffffffff
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x20], ecx
jg 0x403c9e
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x68]
push eax
push esi
call fcn.0041d56a
add esp, 0xc
test eax, eax
je 0x40504e
mov ecx, dword [esi + 0xc]
dec ecx
cmp ecx, 0xffffffff
mov dword [ebp - 0x18], ecx
jle 0x403dd2
mov eax, ecx
shl eax, 4
mov dword [ebp - 0x58], eax
mov eax, dword [esi + 8]
add eax, dword [ebp - 0x58]
cmp ecx, dword [ebp - 0x28]
jl 0x403d70
mov ecx, dword [eax + 4]
dec ecx
je 0x403d65
dec ecx
je 0x403d56
dec ecx
je 0x403d45
push 1
push 0
push 0xffffffffffffffff
push 0
mov ecx, dword [eax]
call fcn.00401525
jmp 0x403dbe
fld qword [eax + 8]
push ecx
push ecx
mov ecx, dword [eax]
fstp qword [esp]
call fcn.0041d730
jmp 0x403dbe
push dword [eax + 0xc]
mov ecx, dword [eax]
push dword [eax + 8]
call fcn.004018bb
jmp 0x403dbe
push 1
push 0
push 0xffffffffffffffff
push dword [eax + 8]
jmp 0x403d3c
mov edx, dword [ebp + edi*4 - 0xb1c]
mov ecx, dword [edx + 8]
dec edi
cmp ecx, 6
mov dword [ebp - 4], edi
mov dword [ebp - 0x10], ecx
jge 0x405038
mov ecx, dword [eax]
cmp byte [ecx + 0xf], 3
jae 0x403db8
cmp dword [ebp - 0x10], 3
jne 0x405024
mov eax, edx
mov eax, dword [eax]
jmp 0x403da5
mov eax, dword [eax + 4]
cmp byte [eax + 0xf], 2
je 0x403da2
cmp eax, ecx
je 0x403dbe
mov dword [ecx + 4], eax
mov byte [ecx + 0xf], 2
jmp 0x403dbe
push edx
call fcn.00401786
mov ecx, dword [ebp - 0x18]
sub dword [ebp - 0x58], 0x10
dec ecx
cmp ecx, 0xffffffff
mov dword [ebp - 0x18], ecx
jg 0x403d1d
mov edi, dword [0x46332c]
push 0
lea eax, [ebp - 0x30]
mov dword [ebp - 0x30], 0x4565d8
mov dword [0x46332c], esi
mov ecx, dword [esi + 4]
inc dword [esi + 0x28]
push eax
push 2
call fcn.004057b1
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
dec dword [esi + 0x28]
mov dword [0x46332c], edi
mov eax, dword [ecx]
cmp eax, 8
je 0x403e71
test eax, eax
je 0x403e71
mov ecx, dword [ebp - 0x60]
test ecx, ecx
mov byte [ebp - 5], 0
je 0x403c58
cmp dword [ebp - 4], 0
jne 0x403e7a
mov eax, dword [ebp - 0x2c]
dec eax
cmp dword [ebp - 0x14], eax
jne 0x403c62
cmp dword [ebp - 0x68], 0
je 0x403e4d
cmp edi, esi
jne 0x403e4d
cmp byte [ecx + 0xe], 0
je 0x403e4d
test byte [ecx + 0xd], 4
je 0x403c62
push 1
push 0
push 0xffffffffffffffff
push dword [ebp - 0x30]
call fcn.00401525
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x68]
push eax
push esi
call fcn.00401bb3
add esp, 0xc
jmp 0x405254
mov byte [ebp - 5], 1
jmp 0x403c58
xor cl, cl
cmp byte [ebp - 5], 0
jne 0x403eea
test cl, cl
je 0x403e8e
mov eax, dword [ebp - 0x4c]
cmp byte [eax], 3
je 0x403eea
mov eax, dword [ebp - 0x34]
test eax, eax
mov edx, dword [ebp - 0x30]
je 0x403ea1
cmp edx, dword [ebp + eax*4 - 0x318]
je 0x403eea
mov eax, dword [0x466be0]
cmp edx, eax
jb 0x403ee6
mov edi, dword [0x466be4]
add edi, eax
cmp edx, edi
jae 0x403ee6
test cl, cl
jne 0x403eea
cmp byte [esi + 0x31], cl
jne 0x403ee6
cmp byte [edx], cl
jne 0x403ecc
mov dword [ebp - 0x30], 0x4565d8
jmp 0x403eec
mov eax, dword [ebp - 0x14]
jmp 0x403ede
mov edx, dword [ebp + eax*4 - 0x1418]
cmp dword [edx + 8], 0x37
je 0x403ee6
inc eax
cmp eax, dword [ebp - 0x2c]
jl 0x403ed1
jmp 0x403eec
mov cl, 1
jmp 0x403eec
xor cl, cl
test cl, cl
mov dword [ebx + 8], 4
mov eax, dword [ebp - 0x30]
je 0x404028
cmp byte [eax], 0
jne 0x403f0e
mov dword [ebx], 0x4565d8
jmp 0x40402a
push eax
call fcn.00453b00
mov edi, eax
mov eax, dword [ebp - 0x2c]
inc edi
dec eax
cmp dword [ebp - 0x14], eax
pop ecx
mov dword [ebp - 0x10], edi
jge 0x403f9e
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp + eax - 0x1414]
cmp dword [eax + 8], 0xc
jne 0x403f9e
mov eax, dword [ebp - 4]
test eax, eax
je 0x403f9e
mov eax, dword [ebp + eax*4 - 0xb1c]
cmp dword [eax + 8], 3
jne 0x403f9e
mov eax, dword [eax]
mov cl, byte [eax + 0xf]
cmp cl, 2
jne 0x403f58
mov eax, dword [eax + 4]
mov cl, byte [eax + 0xf]
cmp cl, 3
jne 0x403f9e
dec dword [ebp - 4]
mov eax, dword [ebp - 4]
mov edi, dword [ebp + eax*4 - 0xb18]
mov eax, dword [ebp - 0x10]
mov ecx, dword [edi]
push 1
push 0
dec eax
push eax
push dword [ebp - 0x30]
call fcn.00401525
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x1418]
mov eax, dword [eax + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [edi]
mov dword [ebx + 8], 3
jmp 0x404028
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
sub eax, dword [ebp - 0x24]
mov ecx, dword [ebp + 0x18]
add eax, dword [ecx]
cmp edi, eax
ja 0x403fc3
push edi
push dword [ebp - 0x30]
push dword [ebp - 0x24]
call fcn.00453500
add esp, 0xc
add dword [ebp - 0x24], edi
jmp 0x404028
cmp edi, 0x1001
jae 0x403ff5
cmp dword [ebp - 0x50], 0x9c40
jae 0x403ff5
mov eax, edi
add eax, 3
and eax, 0xfffffffc
call fcn.004540a0
mov eax, esp
push edi
push dword [ebp - 0x30]
push eax
call fcn.00453500
add esp, 0xc
add dword [ebp - 0x50], edi
jmp 0x404028
cmp dword [ebp - 0x34], 0x64
je 0x40504e
push edi
call fcn.0043e9ea
test eax, eax
pop ecx
mov ecx, dword [ebp - 0x34]
mov dword [ebp + ecx*4 - 0x314], eax
je 0x40504e
push edi
push dword [ebp - 0x30]
push eax
call fcn.00453500
add esp, 0xc
inc dword [ebp - 0x34]
mov dword [ebx], eax
cmp byte [esi + 0x31], 0
jne 0x404e9a
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x68]
push eax
push esi
call fcn.00401bb3
add esp, 0xc
cmp byte [ebp - 5], 0
je 0x404e9a
and dword [ebp - 0x64], 0
jmp 0x405254
cmp eax, 0x18
jne 0x40408d
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x404feb
cmp dword [ebp - 4], 0
je 0x404feb
dec dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov esi, dword [ebp + ecx*4 - 0xb18]
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 0x404ea4
test edi, edi
je 0x405239
mov esi, dword [ebp + edi*4 - 0xb1c]
mov edx, dword [esi + 8]
dec edi
cmp edx, 6
mov dword [ebp - 4], edi
jge 0x405239
cmp eax, 0x19
jne 0x4040e9
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x405239
inc ecx
cmp dword [ebp + ecx*4 - 0x1418], eax
mov dword [ebp - 0x14], ecx
je 0x4040d8
mov edx, eax
inc ecx
cmp dword [ebp + ecx*4 - 0x1418], edx
jne 0x4040cb
mov dword [ebp - 0x14], 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 0x404e9a
cmp eax, 0xb
je 0x404feb
cmp eax, 0xc
je 0x40413c
mov eax, edx
xor edi, edi
sub eax, edi
je 0x40412b
sub eax, 3
je 0x40410b
dec eax
jne 0x404132
mov eax, dword [esi]
jmp 0x404112
mov ecx, dword [esi]
call fcn.00401c84
push edi
push 1
push edi
push 1
push eax
mov dword [ebp - 0x38], eax
call fcn.00401ab0
mov edi, eax
add esp, 0x14
mov dword [ebp - 0x54], edi
jmp 0x40413f
mov ecx, dword [esi]
mov dword [ebp - 0x38], ecx
jmp 0x404135
mov ecx, dword [ebp - 0x38]
mov edi, edx
mov dword [ebp - 0x54], edi
jmp 0x404142
mov edi, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebx + 8]
and dword [ebp - 0x28], 0
xor edx, edx
inc edx
cmp eax, 0x30
jg 0x40427a
je 0x404224
cmp eax, 7
jl 0x40438b
cmp eax, 8
jle 0x4042a7
cmp eax, 0x19
jle 0x40438b
cmp eax, 0x1b
jle 0x4041d5
cmp eax, 0x1c
je 0x404224
cmp eax, 0x2f
jne 0x40438b
cmp edi, edx
jne 0x4041b5
cmp dword [esi + 8], edx
jne 0x40419d
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x4041a4
push ecx
call fcn.004019fb
pop ecx
neg eax
adc edx, 0
neg edx
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x404344
cmp edi, 2
jne 0x40437c
cmp dword [esi + 8], edi
jne 0x4041c7
fld qword [esi]
jmp 0x4041ce
push ecx
call fcn.004011d5
pop ecx
fchs
jmp 0x404342
cmp edi, edx
jne 0x4041f0
cmp dword [esi + 8], edx
jne 0x4041e5
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x4041ec
push ecx
call fcn.004019fb
pop ecx
or eax, edx
jmp 0x40421d
cmp edi, 2
jne 0x40421a
cmp dword [esi + 8], edi
jne 0x4041fe
fld qword [esi]
jmp 0x404205
push ecx
call fcn.004011d5
pop ecx
fld qword [0x458b30]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jnp 0x40426e
jmp 0x40421f
cmp byte [ecx], 0
je 0x40426e
xor eax, eax
inc eax
jmp 0x404270
cmp edi, edx
jne 0x40423f
cmp dword [esi + 8], edx
jne 0x404234
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x40423b
push ecx
call fcn.004019fb
pop ecx
or eax, edx
jmp 0x40426c
cmp edi, 2
jne 0x404269
cmp dword [esi + 8], edi
jne 0x40424d
fld qword [esi]
jmp 0x404254
push ecx
call fcn.004011d5
pop ecx
fld qword [0x458b30]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jp 0x40426e
jmp 0x40421f
cmp byte [ecx], 0
je 0x40421f
xor eax, eax
xor ecx, ecx
mov dword [ebx + 4], ecx
jmp 0x404e5c
cmp eax, 0x31
je 0x404dde
cmp eax, 0x32
je 0x404dc4
cmp eax, 0x33
je 0x404dde
cmp eax, 0x34
jle 0x40438b
cmp eax, 0x36
jg 0x40438b
cmp eax, 0x35
setge byte [ebp - 5]
cmp dword [esi + 8], 3
jne 0x40434c
test edi, edi
je 0x404350
cmp eax, 7
je 0x4042d0
cmp eax, 0x35
je 0x4042d0
or dword [ebp - 0x18], 0xffffffff
jmp 0x4042d3
mov dword [ebp - 0x18], edx
cmp edi, edx
push ecx
jne 0x4042f7
call fcn.004019fb
mov dword [ebx], eax
mov eax, dword [ebp - 0x18]
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.004018bb
jmp 0x404310
call fcn.004011d5
fst qword [ebx]
fild dword [ebp - 0x18]
push ecx
mov ecx, dword [esi]
fadd st(1)
fstp qword [esp]
fstp st(0)
call fcn.0041d730
cmp byte [ebp - 5], 0
je 0x404344
mov esi, dword [esi]
mov al, byte [esi + 0xf]
cmp al, 2
jne 0x404325
mov eax, dword [esi + 4]
mov al, byte [eax + 0xf]
cmp al, 3
je 0x404e91
cmp edi, 1
jne 0x40433d
mov eax, dword [ebp - 0x18]
cdq
add dword [ebx], eax
adc dword [ebx + 4], edx
jmp 0x404344
fild dword [ebp - 0x18]
fadd qword [ebx]
fstp qword [ebx]
mov dword [ebx + 8], edi
jmp 0x404e9a
test edi, edi
jne 0x40437c
mov ecx, dword [esi]
push 1
push 0
push 0xffffffffffffffff
push 0
call fcn.00401525
cmp byte [ebp - 5], 0
je 0x40437c
mov esi, dword [esi]
mov al, byte [esi + 0xf]
cmp al, 2
jne 0x404374
mov eax, dword [esi + 4]
mov al, byte [eax + 0xf]
cmp al, 3
je 0x404e91
and dword [ebx + 8], 0
mov dword [ebx], 0x4565d8
jmp 0x404e9a
cmp dword [ebp - 4], 0
je 0x405239
dec dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov edi, dword [ebp + ecx*4 - 0xb18]
mov ecx, dword [edi + 8]
cmp ecx, 6
jge 0x405239
cmp eax, 0x17
jg 0x404470
cmp eax, 0xc
jl 0x404470
cmp ecx, 3
jne 0x40437c
add eax, 0xfffffff4
cmp eax, 0xb
ja case.default.0x4043d1
jmp dword [eax*4 + 0x40527b]
mov ecx, dword [edi]
push esi
call fcn.00401786
mov eax, dword [edi]
mov cl, byte [eax + 0xf]
cmp cl, 2
jne 0x4043f0
mov ecx, dword [eax + 4]
mov cl, byte [ecx + 0xf]
cmp cl, 4
jne 0x404cf5
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 0x404e9a
mov dword [ebx + 8], 0x2a
jmp case.default.0x4043d1
mov dword [ebx + 8], 0x2b
jmp case.default.0x4043d1
mov dword [ebx + 8], 0x2c
jmp case.default.0x4043d1
mov dword [ebx + 8], 0x2d
jmp case.default.0x4043d1
mov dword [ebx + 8], 0x2e
jmp case.default.0x4043d1
mov dword [ebx + 8], 0x25
jmp case.default.0x4043d1
mov dword [ebx + 8], 0x26
jmp case.default.0x4043d1
mov dword [ebx + 8], 0x27
jmp case.default.0x4043d1
mov dword [ebx + 8], 0x28
jmp case.default.0x4043d1
mov dword [ebx + 8], 0x29
jmp case.default.0x4043d1
mov dword [ebx + 8], 0x24
mov eax, dword [edi]
mov dword [ebp - 0x28], eax
mov ecx, dword [edi + 8]
mov eax, ecx
sub eax, 0
je 0x4044a3
sub eax, 3
je 0x40449a
dec eax
jne 0x4044a8
mov eax, dword [edi]
push 0
push 1
push 0
push 1
push eax
mov dword [ebp - 0x48], eax
call fcn.00401ab0
add esp, 0x14
jmp 0x4044aa
mov ecx, dword [edi]
call fcn.00401c84
jmp 0x404484
mov eax, dword [edi]
mov dword [ebp - 0x48], eax
mov eax, ecx
cmp dword [ebp - 0x54], 0
je 0x404974
test eax, eax
je 0x404974
mov ecx, dword [ebx + 8]
cmp ecx, 0x24
je 0x404974
xor edx, edx
inc edx
cmp dword [ebp - 0x54], edx
jne 0x4044d9
cmp eax, edx
jne 0x4044d9
cmp ecx, 0x2d
jne 0x4044eb
cmp ecx, 0x29
jg 0x404702
cmp ecx, 0x25
jl 0x404702
mov eax, dword [esi + 8]
dec eax
je 0x404516
dec eax
je 0x404507
push dword [ebp - 0x38]
call fcn.004019fb
mov esi, eax
pop ecx
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x3c], edx
jmp 0x404524
fld qword [esi]
call fcn.0045468c
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
jmp 0x404521
mov eax, dword [esi]
mov dword [ebp - 0x40], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0x3c], eax
mov esi, dword [ebp - 0x40]
mov eax, dword [edi + 8]
dec eax
je 0x404541
dec eax
je 0x404538
push dword [ebp - 0x48]
call fcn.004019fb
pop ecx
jmp 0x404546
fld qword [edi]
call fcn.0045468c
jmp 0x404546
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 - 0x74], eax
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x10], edi
jg 0x4045e7
je 0x4045dd
sub ecx, 0x1d
cmp ecx, 9
ja case.0x40456c.36
jmp dword [ecx*4 + 0x4052ab]
cmp eax, esi
jne 0x4045bd
cmp edx, dword [ebp - 0x3c]
jne 0x4045bd
mov eax, edi
jmp 0x4045bf
cmp eax, esi
jne 0x40457c
cmp edx, dword [ebp - 0x3c]
je 0x4045bd
jmp 0x40457c
cmp edx, dword [ebp - 0x3c]
jl 0x4045bd
jg 0x40457c
cmp eax, esi
jbe 0x4045bd
jmp 0x40457c
cmp edx, dword [ebp - 0x3c]
jg 0x4045bd
jl 0x40457c
cmp eax, esi
jae 0x4045bd
jmp 0x40457c
cmp edx, dword [ebp - 0x3c]
jl 0x4045bd
jg 0x40457c
cmp eax, esi
jb 0x4045bd
jmp 0x40457c
cmp edx, dword [ebp - 0x3c]
jg 0x4045bd
jl 0x40457c
cmp eax, esi
jbe 0x40457c
xor eax, eax
xor ecx, ecx
mov dword [ebx + 4], ecx
jmp 0x4046fb
or eax, esi
or edx, dword [ebp - 0x3c]
jmp 0x4046f8
xor eax, esi
xor edx, dword [ebp - 0x3c]
jmp 0x4046f8
and eax, esi
and edx, dword [ebp - 0x3c]
jmp 0x4046f8
sub ecx, 0x28
je 0x4046f1
dec ecx
je 0x4046e8
dec ecx
je 0x4046e1
dec ecx
je 0x4046da
dec ecx
je 0x4046cd
dec ecx
dec ecx
je 0x4046b5
sub ecx, 6
jne case.0x40456c.36
mov ecx, eax
xor edi, edi
or ecx, edx
jne 0x40463e
cmp dword [ebp - 0x3c], edi
jg 0x4046a6
jl 0x404630
cmp esi, edi
jae 0x4046a6
mov dword [ebx], 0x4565d8
mov dword [ebp - 0x10], edi
jmp case.0x40456c.36
cmp edx, edi
jg 0x4046a6
jl 0x404648
cmp eax, edi
jae 0x4046a6
neg eax
adc edx, edi
neg edx
mov byte [ebp - 5], 1
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], edx
fild qword [ebp - 0x40]
sub esp, 0x10
fstp qword [esp + 8]
fild qword [ebp - 0x74]
fstp qword [esp]
call fcn.0041fc8d
cmp byte [ebp - 5], 0
fst qword [ebp - 0x1c]
fstp qword [ebx]
je 0x40468f
push edi
push 2
push dword [ebp - 0x3c]
push esi
call fcn.004544e0
or eax, edx
je 0x40468f
fld qword [ebp - 0x1c]
fchs
fstp qword [ebx]
cmp dword [ebp - 0x3c], edi
jg 0x4046ac
jl 0x40469a
cmp esi, edi
jae 0x4046ac
mov dword [ebp - 0x10], 2
jmp case.0x40456c.36
mov byte [ebp - 5], 0
jmp 0x404658
fld qword [ebx]
call fcn.0045468c
jmp 0x4046f8
mov ecx, esi
or ecx, dword [ebp - 0x3c]
je case.default.0x404a24
push dword [ebp - 0x3c]
push esi
push edx
push eax
call fcn.004545e0
jmp 0x4046f8
push dword [ebp - 0x3c]
push esi
push edx
push eax
call fcn.004545a0
jmp 0x4046f8
sub eax, esi
sbb edx, dword [ebp - 0x3c]
jmp 0x4046f8
add eax, esi
adc edx, dword [ebp - 0x3c]
jmp 0x4046f8
mov ecx, esi
call fcn.00454710
jmp 0x4046f8
mov ecx, esi
call fcn.00454740
mov dword [ebx + 4], edx
mov dword [ebx], eax
jmp case.0x40456c.36
mov eax, dword [esi + 8]
dec eax
je 0x40471d
dec eax
je 0x404719
push dword [ebp - 0x38]
call fcn.00401220
xor edx, edx
pop ecx
inc edx
jmp 0x40471f
fld qword [esi]
jmp 0x40471f
fild qword [esi]
mov eax, dword [edi + 8]
fstp qword [ebp - 0x1c]
dec eax
je 0x40473d
dec eax
je 0x404739
push dword [ebp - 0x48]
call fcn.00401220
xor edx, edx
pop ecx
inc edx
jmp 0x40473f
fld qword [edi]
jmp 0x40473f
fild qword [edi]
mov ecx, dword [ebx + 8]
fst qword [ebp - 0x5c]
cmp ecx, 0x23
push 2
pop esi
jg 0x40482f
je 0x404814
cmp ecx, 0x1d
jl 0x404943
cmp ecx, 0x1e
jle 0x4047f3
cmp ecx, 0x1f
je 0x4047d2
cmp ecx, 0x20
je 0x4047b7
cmp ecx, 0x21
je 0x40479c
cmp ecx, 0x22
jne 0x404943
fcomp qword [ebp - 0x1c]
fnstsw ax
test ah, 1
jne 0x404790
mov dword [ebp - 0x18], edx
jmp 0x404794
and dword [ebp - 0x18], 0
fild dword [ebp - 0x18]
jmp 0x404970
fcomp qword [ebp - 0x1c]
fnstsw ax
test ah, 5
jp 0x4047ab
mov dword [ebp - 0x18], edx
jmp 0x4047af
and dword [ebp - 0x18], 0
fild dword [ebp - 0x18]
jmp 0x404970
fcomp qword [ebp - 0x1c]
fnstsw ax
test ah, 0x41
jne 0x4047c6
mov dword [ebp - 0x18], edx
jmp 0x4047ca
and dword [ebp - 0x18], 0
fild dword [ebp - 0x18]
jmp 0x404970
fld qword [ebp - 0x1c]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jnp 0x4047e7
mov dword [ebp - 0x18], edx
jmp 0x4047eb
and dword [ebp - 0x18], 0
fild dword [ebp - 0x18]
jmp 0x404970
fld qword [ebp - 0x1c]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jp 0x404808
mov dword [ebp - 0x18], edx
jmp 0x40480c
and dword [ebp - 0x18], 0
fild dword [ebp - 0x18]
jmp 0x404970
fcomp qword [ebp - 0x1c]
fnstsw ax
test ah, 0x41
jp 0x404823
mov dword [ebp - 0x18], edx
jmp 0x404827
and dword [ebp - 0x18], 0
fild dword [ebp - 0x18]
jmp 0x404970
cmp ecx, 0x2a
je 0x40496d
cmp ecx, 0x2b
je 0x404968
cmp ecx, 0x2c
je 0x404963
jle 0x404943
cmp ecx, 0x2e
jle 0x404929
cmp ecx, 0x34
jne 0x404943
fcom qword [0x458b30]
mov byte [ebp - 5], 1
fnstsw ax
test ah, 5
jnp 0x404877
mov byte [ebp - 5], 0
fld qword [0x458b30]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x40489c
fld qword [ebp - 0x1c]
fcomp qword [0x458b30]
fnstsw ax
test ah, 5
jnp 0x40491d
cmp byte [ebp - 5], 0
je 0x4048cc
fstp st(0)
sub esp, 0x10
fld1
fstp qword [esp + 8]
fld qword [ebp - 0x1c]
fstp qword [esp]
call fcn.0041fc4d
fld qword [0x458b30]
fucompp
fnstsw ax
test ah, 0x44
jp 0x40491f
fld qword [ebp - 0x5c]
fchs
fld qword [ebp - 0x1c]
sub esp, 0x10
fstp qword [esp + 8]
fstp qword [esp]
call fcn.0041fc8d
cmp byte [ebp - 5], 0
fstp qword [ebx]
je 0x404945
fld qword [0x45acb8]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [ebp - 0x1c]
fstp qword [esp]
call fcn.0041fc4d
push ecx
push ecx
fstp qword [esp]
call fcn.0041fc1c
fld qword [0x4597e0]
fucompp
fnstsw ax
test ah, 0x44
jp 0x404945
fld qword [ebx]
fchs
jmp 0x404970
fstp st(0)
mov dword [ebx], 0x4565d8
xor esi, esi
jmp 0x404945
fld qword [0x458b30]
fld qword [ebp - 0x1c]
fucompp
fnstsw ax
test ah, 0x44
jp 0x40494d
mov dword [ebx], 0x4565d8
xor esi, esi
fstp st(0)
mov dword [ebx + 8], esi
jmp 0x404e71
cmp ecx, 0x2e
fdiv qword [ebp - 0x1c]
fst qword [ebx]
jne 0x404943
push ecx
push ecx
fstp qword [esp]
call fcn.0041fc25
jmp 0x404970
fmul qword [ebp - 0x1c]
jmp 0x404970
fsub qword [ebp - 0x1c]
jmp 0x404970
fadd qword [ebp - 0x1c]
fstp qword [ebx]
jmp 0x404945
mov eax, dword [esi + 8]
dec eax
je 0x4049aa
dec eax
je 0x404982
mov eax, dword [ebp - 0x38]
jmp 0x4049be
fld qword [esi]
push ecx
push ecx
fstp qword [esp]
push 0x46328c
lea eax, [ebp - 0xc18]
push 0x100
push eax
call fcn.0040a9c1
add esp, 0x14
lea eax, [ebp - 0xc18]
jmp 0x4049be
lea eax, [ebp - 0xc18]
push eax
push dword [esi + 4]
push dword [esi]
call fcn.004018ef
add esp, 0xc
mov dword [ebp - 0xc], eax
mov eax, dword [edi + 8]
dec eax
je 0x4049f7
dec eax
je 0x4049cf
mov eax, dword [ebp - 0x48]
jmp 0x404a0b
fld qword [edi]
push ecx
push ecx
fstp qword [esp]
push 0x46328c
lea eax, [ebp - 0x184]
push 0x100
push eax
call fcn.0040a9c1
add esp, 0x14
lea eax, [ebp - 0x184]
jmp 0x404a0b
lea eax, [ebp - 0x184]
push eax
push dword [edi + 4]
push dword [edi]
call fcn.004018ef
add esp, 0xc
mov dword [ebp - 0x20], eax
mov eax, dword [ebx + 8]
add eax, 0xffffffe3
cmp eax, 7
mov dword [ebp - 0x10], 1
ja case.default.0x404a24
jmp dword [eax*4 + 0x4052d3]
cmp byte [0x463351], 0
push dword [ebp - 0xc]
push dword [ebp - 0x20]
jne 0x404a41
call fcn.00441849
jmp 0x404a62
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
test eax, eax
jne 0x404b62
xor eax, eax
inc eax
jmp 0x404b64
push dword [ebp - 0xc]
push dword [ebp - 0x20]
call fcn.00453840
pop ecx
pop ecx
jmp 0x404a47
mov al, byte [0x463351]
test al, al
push dword [ebp - 0xc]
push dword [ebp - 0x20]
jne 0x404a7c
call fcn.00441849
jmp 0x404a8d
cmp al, 2
jne 0x404a88
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
jmp 0x404a8f
call fcn.00453840
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.0x40456c.36
mov al, byte [0x463351]
test al, al
push dword [ebp - 0xc]
push dword [ebp - 0x20]
jne 0x404ab9
call fcn.00441849
jmp 0x404aca
cmp al, 2
jne 0x404ac5
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
jmp 0x404acc
call fcn.00453840
pop ecx
pop ecx
test eax, eax
jmp 0x404b29
mov al, byte [0x463351]
test al, al
push dword [ebp - 0xc]
push dword [ebp - 0x20]
jne 0x404ae6
call fcn.00441849
jmp 0x404af7
cmp al, 2
jne 0x404af2
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
jmp 0x404af9
call fcn.00453840
pop ecx
pop ecx
test eax, eax
jmp 0x404b5c
mov al, byte [0x463351]
test al, al
push dword [ebp - 0xc]
push dword [ebp - 0x20]
jne 0x404b13
call fcn.00441849
jmp 0x404b24
cmp al, 2
jne 0x404b1f
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
jmp 0x404b26
call fcn.00453840
pop ecx
pop ecx
cmp eax, 0xffffffff
jle 0x404b62
jmp 0x404a4f
mov al, byte [0x463351]
test al, al
push dword [ebp - 0xc]
push dword [ebp - 0x20]
jne 0x404b46
call fcn.00441849
jmp 0x404b57
cmp al, 2
jne 0x404b52
call dword [sym.imp.KERNEL32.DLL_lstrcmpiA]
jmp 0x404b59
call fcn.00453840
pop ecx
pop ecx
cmp eax, 1
jl 0x404a4f
xor eax, eax
xor ecx, ecx
mov dword [ebx], eax
mov dword [ebx + 4], ecx
jmp case.0x40456c.36
cmp dword [esi + 8], 3
jne 0x404b7f
mov ecx, dword [esi]
call fcn.00401c43
jmp 0x404b88
push dword [ebp - 0xc]
call fcn.00453b00
pop ecx
cmp dword [ebp - 0x28], 0
mov dword [ebp - 0x58], eax
je 0x404ba9
mov ecx, dword [ebp - 0x28]
push eax
push dword [ebp - 0xc]
call fcn.0041d6d0
test eax, eax
je 0x404ba9
mov eax, dword [ebp - 0x28]
jmp 0x404cf5
cmp dword [edi + 8], 3
jne 0x404bb8
mov ecx, dword [edi]
call fcn.00401c43
jmp 0x404bc1
push dword [ebp - 0x20]
call fcn.00453b00
pop ecx
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x18], eax
lea eax, [eax + ecx + 1]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x404be9
cmp dword [ebp - 4], 0
jne 0x404be9
mov ecx, dword [ebp - 0x2c]
dec ecx
cmp dword [ebp - 0x14], ecx
jne 0x404be9
mov dword [ebp - 0x44], eax
jmp 0x404c2f
mov eax, dword [ebp - 0x2c]
dec eax
cmp dword [ebp - 0x14], eax
jge 0x404c2b
mov eax, dword [ebp - 0x44]
mov eax, dword [ebp + eax - 0x1414]
cmp dword [eax + 8], 0xc
jne 0x404c2b
mov eax, dword [ebp - 4]
test eax, eax
je 0x404c2b
mov eax, dword [ebp + eax*4 - 0xb1c]
cmp dword [eax + 8], 3
jne 0x404c2b
mov eax, dword [eax]
mov cl, byte [eax + 0xf]
cmp cl, 2
jne 0x404c26
mov ecx, dword [eax + 4]
mov cl, byte [ecx + 0xf]
cmp cl, 3
je 0x404be4
and dword [ebp - 0x44], 0
cmp dword [ebp - 0x44], 0
je 0x404cfc
mov ecx, dword [ebp - 0x44]
call fcn.00401c84
cmp eax, dword [ebp - 0x20]
mov dword [ebp - 0x30], eax
jne 0x404c67
push dword [ebp - 0x58]
mov ecx, dword [ebp - 0x44]
push dword [ebp - 0xc]
call fcn.0041d6d0
test eax, eax
je 0x404cfc
mov eax, dword [ebp - 0x60]
cmp dword [ebp - 0x44], eax
jmp 0x404ccd
cmp eax, dword [ebp - 0xc]
je 0x404cfc
mov eax, dword [ebp - 0x10]
mov esi, dword [ebp - 0x44]
push 1
push 0
dec eax
push eax
push 0
mov ecx, esi
call fcn.00401525
test eax, eax
je 0x40516b
mov ecx, esi
call fcn.00401c84
mov edi, dword [ebp - 0x18]
test edi, edi
mov dword [ebp - 0x30], eax
je 0x404cab
push edi
push dword [ebp - 0x20]
push eax
call fcn.00453500
add esp, 0xc
mov eax, dword [ebp - 0x58]
inc eax
push eax
mov eax, dword [ebp - 0x30]
push dword [ebp - 0xc]
add edi, eax
push edi
call fcn.00453500
add esp, 0xc
push 0
mov ecx, esi
call fcn.0041d4c8
cmp esi, dword [ebp - 0x60]
je 0x405254
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x1418]
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 - 0xb18]
mov eax, dword [eax]
mov dword [ebx], eax
jmp 0x404e93
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 - 0x10]
cmp eax, ecx
ja 0x404d1a
mov ecx, dword [ebp - 0x24]
add dword [ebp - 0x24], eax
mov dword [ebx], ecx
jmp 0x404d6e
cmp eax, 0x1001
jae 0x404d44
cmp dword [ebp - 0x50], 0x9c40
jae 0x404d44
mov eax, dword [ebp - 0x10]
add eax, 3
and eax, 0xfffffffc
call fcn.004540a0
mov eax, esp
mov dword [ebx], eax
mov eax, dword [ebp - 0x10]
add dword [ebp - 0x50], eax
jmp 0x404d6e
cmp dword [ebp - 0x34], 0x64
je 0x405157
push dword [ebp - 0x10]
call fcn.0043e9ea
test eax, eax
pop ecx
mov ecx, dword [ebp - 0x34]
mov dword [ebp + ecx*4 - 0x314], eax
mov dword [ebx], eax
je 0x405157
inc dword [ebp - 0x34]
cmp dword [ebp - 0x18], 0
je 0x404d84
push dword [ebp - 0x18]
push dword [ebp - 0x20]
push dword [ebx]
call fcn.00453500
add esp, 0xc
mov eax, dword [ebp - 0x58]
inc eax
push eax
mov eax, dword [ebx]
add eax, dword [ebp - 0x18]
push dword [ebp - 0xc]
push eax
call fcn.00453500
add esp, 0xc
cmp dword [edi + 8], 0
je 0x404db5
cmp dword [esi + 8], 0
je 0x404db5
mov dword [ebp - 0x10], 4
jmp case.0x40456c.36
mov dword [ebx], 0x4565d8
and dword [ebp - 0x10], 0
mov eax, dword [ebp - 0x10]
mov dword [ebx + 8], eax
jmp 0x404e71
cmp dword [esi + 8], 3
jne 0x40437c
mov eax, ecx
mov dword [ebx + 8], edx
cdq
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x404e9a
cmp edi, edx
jne 0x404df6
cmp dword [esi + 8], edx
jne 0x404dee
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x404e10
push ecx
call fcn.004019fb
jmp 0x404e0f
cmp edi, 2
jne 0x404e67
cmp dword [esi + 8], edi
jne 0x404e09
fld qword [esi]
call fcn.0045468c
jmp 0x404e10
push ecx
call fcn.00401a23
pop ecx
cmp dword [ebx + 8], 0x33
jne 0x404e38
test edx, edx
jl 0x404e33
jg 0x404e23
cmp eax, 0x100
jb 0x404e33
test edx, edx
jg 0x404e33
jl 0x404e2e
cmp eax, 0xffffffff
ja 0x404e33
movzx eax, byte [eax]
jmp 0x404e35
xor eax, eax
cdq
jmp 0x404e59
test edx, edx
jl 0x404e55
jg 0x404e42
test eax, eax
jb 0x404e55
test edx, edx
jg 0x404e55
jl 0x404e4d
cmp eax, 0xffffffff
ja 0x404e55
and dword [ebx + 4], 0
not eax
jmp 0x404e5c
not eax
not edx
mov dword [ebx + 4], edx
mov dword [ebx], eax
mov dword [ebx + 8], 1
jmp 0x404e9a
and dword [ebx + 8], 0
mov dword [ebx], 0x4565d8
mov esi, dword [ebp - 0x28]
test esi, esi
je 0x404e9a
push ebx
mov ecx, esi
call fcn.00401786
mov al, byte [esi + 0xf]
cmp al, 2
jne 0x404e8d
mov eax, dword [esi + 4]
mov al, byte [eax + 0xf]
cmp al, 4
je 0x404e9a
mov dword [ebx], esi
mov dword [ebx + 8], 3
cmp dword [ebx + 0xc], 0
je 0x404fb4
mov ecx, dword [ebx + 8]
mov eax, ecx
sub eax, 0
je 0x404eda
sub eax, 3
je 0x404ed1
dec eax
jne 0x404edf
mov eax, dword [ebx]
push 0
push 1
push 0
push 1
push eax
mov dword [ebp - 0x38], eax
call fcn.00401ab0
add esp, 0x14
mov dword [ebp - 0x54], eax
jmp 0x404ee2
mov ecx, dword [ebx]
call fcn.00401c84
jmp 0x404eb8
mov eax, dword [ebx]
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x54], ecx
mov eax, dword [ebp - 0x54]
dec eax
je 0x404f8f
dec eax
je 0x404efa
mov eax, dword [ebp - 0x38]
cmp byte [eax], 0
setne al
jmp 0x404f26
cmp dword [ebx + 8], 2
jne 0x404f04
fld qword [ebx]
jmp 0x404f0d
push dword [ebp - 0x38]
call fcn.004011d5
pop ecx
fld qword [0x458b30]
fld st(1)
fucompp
fnstsw ax
fstp st(0)
test ah, 0x44
jp 0x404fad
xor al, al
mov ecx, dword [ebx + 0xc]
cmp dword [ecx + 8], 0x19
je 0x404fc3
mov esi, dword [ebp - 0x14]
movzx edi, al
xor eax, eax
cmp dword [ecx + 8], 0x1a
sete al
cmp edi, eax
jne 0x404feb
inc esi
cmp dword [ebp + esi*4 - 0x1418], ecx
mov dword [ebp - 0x14], esi
je 0x404f64
inc esi
cmp dword [ebp + esi*4 - 0x1418], ecx
jne 0x404f57
mov dword [ebp - 0x14], esi
mov eax, dword [ebp + esi*4 - 0x1418]
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x404f78
cmp dword [ecx + 8], 0x19
jne 0x404f39
mov eax, edi
cdq
mov dword [ebx + 8], 1
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebx + 0xc], ecx
jmp 0x404e9a
cmp dword [ebx + 8], 1
jne 0x404f9c
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
jmp 0x404fa5
push dword [ebp - 0x38]
call fcn.004019fb
pop ecx
or eax, edx
je 0x404f24
mov al, 1
jmp 0x404f26
mov eax, dword [ebp - 4]
inc dword [ebp - 4]
mov dword [ebp + eax*4 - 0xb18], ebx
jmp 0x404feb
test al, al
jne 0x404feb
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
mov eax, dword [ebp + eax*4 - 0x1418]
cmp eax, dword [ebx + 0xc]
je 0x404feb
mov ebx, dword [ebx + 0xc]
inc dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
cmp dword [ebp + eax*4 - 0x1418], ebx
jne 0x404fdc
inc dword [ebp - 0x14]
mov edi, dword [ebp - 4]
mov ecx, dword [ebp - 0x14]
jmp 0x40392b
mov eax, dword [ebx]
push dword [eax + 0x10]
push edi
jmp 0x40515e
push dword [ebx + 4]
push dword [ebx + 0xc]
call fcn.0041d673
jmp 0x405254
mov ecx, dword [ebp - 0x60]
push 1
push 0
push 0xffffffffffffffff
push dword [ebx]
jmp 0x40524f
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.0044a6b8
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x68]
push eax
push esi
call fcn.00401bb3
add esp, 0xc
jmp 0x40516b
push dword [esi]
jmp 0x40515c
mov eax, dword [ebp - 0x4c]
cmp byte [eax], 3
je 0x405254
cmp edi, 1
jne 0x405239
mov ecx, dword [ebp - 0x60]
test ecx, ecx
mov edx, dword [ebp - 0xb18]
mov esi, edx
je 0x405084
push edx
call fcn.00401786
jmp 0x405254
mov ebx, dword [ebp + 0x10]
mov eax, dword [edx + 8]
test eax, eax
mov ecx, dword [ebx]
mov dword [ebp - 0x64], ecx
je 0x4050ac
cmp eax, 1
je 0x4050e2
cmp eax, 2
je 0x4050c6
jle 0x405254
cmp eax, 4
jg 0x405254
cmp eax, 3
jne 0x4050fe
mov ecx, dword [edx]
call fcn.00401c84
mov ecx, dword [esi]
mov edi, eax
mov dword [ebp - 0x28], edi
call fcn.00401c43
jmp 0x40510a
fld qword [edx]
push ecx
push ecx
fstp qword [esp]
push 0x46328c
push 0x100
push ecx
call fcn.0040a9c1
add esp, 0x14
jmp 0x4050f6
push ecx
push dword [edx + 4]
push dword [edx]
call fcn.004018ef
push eax
call fcn.00453b00
add esp, 0x10
inc eax
add dword [ebx], eax
jmp 0x405254
mov edi, dword [edx]
push edi
mov dword [ebp - 0x28], edi
call fcn.00453b00
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 - 0x10], esi
jae 0x40512e
mov eax, 0xff
jmp 0x405131
movzx eax, ax
mov ecx, dword [ebp + 0x20]
lea eax, [eax + ecx + 1]
cmp esi, eax
jbe 0x405224
mov ecx, dword [ebp + 0x18]
mov edi, dword [ecx]
sub edi, eax
add edi, esi
push edi
call fcn.0043e9ea
test eax, eax
pop ecx
mov dword [ebp + 0x10], eax
jne 0x40517a
push 0x4565d8
push 0
mov ecx, dword [ebp - 0x4c]
push str.Out_of_memory.__The_current_thread_will_exit.
call fcn.0044a6b8
mov eax, dword [ebp + 0xc]
and dword [ebp - 0x64], 0
and dword [eax], 0
jmp 0x405254
cmp edi, 0x400000
jbe 0x405188
inc dword [0x466be8]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
mov esi, dword [ebx]
sub esi, eax
je 0x4051a0
push esi
push eax
push dword [ebp + 0x10]
call fcn.00453500
add esp, 0xc
push dword [ebp - 0x10]
mov eax, dword [ebp + 0x10]
push dword [ebp - 0x28]
add eax, esi
push eax
mov dword [ebx], eax
mov dword [ebp - 0x64], eax
call fcn.00453500
mov eax, dword [ebp + 0x14]
push dword [eax]
call fcn.0043dfa7
mov eax, dword [ebp + 0x18]
add esp, 0x10
cmp dword [eax], 0x400000
jbe 0x4051d4
dec dword [0x466be8]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax]
mov eax, dword [ebp + 0x18]
add ecx, dword [eax]
xor eax, eax
cmp dword [ebp + 8], eax
mov dword [ebp - 0x14], eax
jle 0x405212
mov edx, dword [ebp + 0x1c]
lea eax, [edx + eax*4]
mov edx, dword [ebp + 0x14]
mov esi, dword [eax]
mov edx, dword [edx]
cmp esi, edx
jb 0x405206
cmp esi, ecx
jae 0x405206
mov esi, dword [ebp + 0x10]
sub esi, edx
add esi, dword [eax]
mov dword [eax], esi
mov eax, dword [ebp - 0x14]
inc eax
cmp eax, dword [ebp + 8]
mov dword [ebp - 0x14], eax
jl 0x4051e8
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
mov esi, dword [ebp - 0x10]
mov dword [ecx], eax
mov eax, dword [ebp + 0x18]
mov dword [eax], edi
jmp 0x405235
mov eax, dword [ebx]
cmp eax, edi
je 0x405235
push esi
push edi
push eax
call fcn.00453cf0
add esp, 0xc
add dword [ebx], esi
jmp 0x405254
mov ecx, dword [ebp - 0x60]
test ecx, ecx
je 0x405254
cmp dword [ebp - 0x64], 0
je 0x405254
push 1
push 0
push 0xffffffffffffffff
push dword [ebp - 0x64]
call fcn.00401525
mov esi, dword [ebp - 0x34]
jmp 0x405267
push dword [ebp + esi*4 - 0x318]
dec esi
call fcn.0043dfa7
pop ecx
test esi, esi
jne 0x405259
mov eax, dword [ebp - 0x64]
lea esp, [ebp - 0x3424]
pop edi
pop esi
pop ebx
leave
ret 0x1c