Function at 0x47c60c
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0x90
push ebx
push ecx
push edx
push esi
push edi
mov edx, eax
mov dword [esp + 0x1b], edx
mov esi, ebx
mov dword [esp + 0x3f], ecx
mov eax, 0
mov dword [esp + 0x37], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0x17], 0
mov dword [esp + 0x50], 0
cmp edx, 0x4a
jne 0x47c665
mov eax, 0
jmp 0x47dcc8
cmp byte [edi + 0x51], 1
je 0x47c6c1
jmp 0x47c6f3
mov eax, esi
call fcn.00427954
mov dword [esp + 0x9c], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov byte [esp + 0x43], 0
mov edi, dword [esi + 0x33]
mov dword [esp + 0x33], edi
cmp edi, 0
jne 0x47c65a
jmp 0x47c6f3
cmp edx, 0x68
je 0x47c6f3
mov dword [esp + 0x7c], 0
mov ebx, esi
lea ecx, [esp + 0x7c]
mov eax, 0x68
call fcn.0047c60c
mov eax, dword [0x542b34]
mov dword [esp + 0xa0], eax
mov edi, 0
mov dword [esp + 0x33], edi
mov eax, edx
cmp eax, 0x3c
je 0x47c754
cmp eax, 0x4e
je 0x47c754
cmp eax, 0x5a
je 0x47c754
cmp eax, 0x55
je 0x47c754
cmp eax, 0x59
je 0x47c754
cmp eax, 0x47
je 0x47c754
cmp eax, 0x58
je 0x47c754
cmp eax, 9
je 0x47c754
cmp eax, 0x26
je 0x47c754
cmp eax, 5
je 0x47c754
cmp eax, 0x22
je 0x47c754
cmp eax, 0x42
je 0x47c754
cmp eax, 0x43
je 0x47c754
cmp eax, 0x3f
je 0x47c754
cmp eax, 0x40
je 0x47c754
cmp eax, 0x4f
je 0x47c754
cmp eax, 0x56
je 0x47c754
cmp eax, 0x48
je 0x47c754
cmp eax, 0x61
jne 0x47c760
lea eax, [esp + 0x8c]
call fcn.00434e50
mov eax, edx
cmp eax, 0x22
je 0x47c776
cmp eax, 0x47
je 0x47c776
cmp eax, 0x4e
je 0x47c776
cmp eax, 0x55
jne 0x47c782
lea eax, [esp + 0x84]
call fcn.00434e50
movzx eax, byte [esi + 0x38]
and eax, 1
cmp eax, 0
pushfd
lea eax, [esp + 0x9c]
mov dword [esp + 0x4c], eax
popfd
pushfd
lea eax, [esp + 0x98]
mov dword [esp + 0x48], eax
popfd
pushfd
lea ebx, [esp + 0x84]
mov dword [esp + 0x2f], ebx
popfd
je 0x47c7d6
mov eax, esi
call fcn.0047c47c
mov dword [esp + 0xa0], eax
cmp dword [esp + 0xa0], 0
jne 0x47da67
mov byte [esp + 0x43], 1
cmp edi, 0
je 0x47c7ea
jmp 0x47c8af
cmp edx, 7
jne 0x47c7f4
jmp 0x47c8af
cmp edx, 0x68
jne 0x47c7e0
jmp 0x47c8af
mov dword [esp + 0x50], 1
mov eax, esi
mov ebx, 0x5463a8
call fcn.0047b854
mov dword [esp + 0xa0], eax
mov edi, dword [esi + 0x33]
mov dword [esp + 0x33], edi
cmp dword [esp + 0xa0], 0
je 0x47c842
cmp edi, 0
je 0x47da67
mov eax, esi
call fcn.0047ba58
mov edi, 0
jmp 0x47da67
cmp byte [edi + 0x52], 0
jne 0x47c8b6
jmp 0x47c8bf
push 0
push 0x5462f4
push 0x5462fc
call sub.KERNEL32.dll_GetProfileIntA
mov byte [edi + 0x52], al
cmp byte [edi + 0x52], 0
je 0x47c8af
mov eax, dword [edi + 0x54]
call fcn.004b3428
mov eax, 0x105
mov ebx, 1
call fcn.004b363c
mov dword [edi + 0x54], eax
push 0x105
mov eax, dword [edi + 0x54]
push eax
push 0x546304
push 0x54630c
push 0x546318
call sub.KERNEL32.dll_GetProfileStringA
mov eax, dword [edi + 0x54]
cmp byte [eax], 0
jne 0x47c8a8
mov eax, dword [edi + 0x54]
mov ebx, str.DOS.LOG
call fcn.004f627c
mov eax, edi
call fcn.0047c578
cmp edi, 0
jne 0x47c83a
jmp 0x47c8bf
call fcn.0041d96c
mov dword [esp + 0x17], eax
mov edx, dword [esp + 0x1b]
mov eax, edx
cmp eax, 5
je 0x47c924
cmp eax, 0x22
je 0x47c924
cmp eax, 6
je 0x47c924
cmp eax, 0x39
je 0x47c924
cmp eax, 0xf
je 0x47c924
cmp eax, 0x11
je 0x47c924
cmp eax, 0x1c
je 0x47c924
cmp eax, 0x3e
je 0x47c924
cmp eax, 0x21
je 0x47c924
cmp eax, 0x43
je 0x47c924
cmp eax, 0x40
je 0x47c924
cmp eax, 0x2a
je 0x47c924
cmp eax, 0x2c
je 0x47c924
cmp eax, 0x2f
je 0x47c924
cmp eax, 0x2d
je 0x47c924
cmp eax, 0x2e
je 0x47c924
cmp eax, 0x55
je 0x47c924
cmp eax, 0x56
je 0x47c924
cmp eax, 0x59
jne 0x47c939
mov eax, dword [esp + 0x3f]
lea eax, [eax + 4]
mov dword [esp + 0x3f], eax
mov eax, dword [eax - 4]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x37], eax
cmp edi, 0
jne 0x47c943
jmp 0x47cbd8
cmp edx, 0x18
je 0x47c956
cmp edx, 0x1f
je 0x47c956
cmp edx, 0x31
jne 0x47ca99
cmp dword [edi + 0x89], 0
je 0x47ca99
lea eax, [esp + 0x54]
mov dword [esp + 0x23], eax
mov ebx, dword [edi + 0x89]
mov ecx, dword [edi + 0x8d]
call fcn.00531968
mov eax, dword [edi + 0x89]
mov ebx, dword [edi + 0x8d]
call fcn.00434fc0
cmp dword [edi + 0x7d], 0
je 0x47c9a0
mov eax, dword [edi + 0x7d]
mov eax, dword [eax + 0x1d]
call fcn.00427b4c
jmp 0x47c9a7
mov eax, esi
call fcn.00427b5c
cmp edx, 0x18
jne 0x47c9b5
mov eax, esi
call fcn.00427bdc
jmp 0x47c9bc
mov eax, esi
call fcn.00427ba8
call fcn.00422190
cmp eax, 0
je 0x47c9f9
mov eax, dword [edi + 0x89]
mov ebx, dword [edi + 0x8d]
call fcn.00434fc0
cmp dword [edi + 0x7d], 0
je 0x47c9ed
mov eax, dword [edi + 0x7d]
mov eax, dword [eax + 0x1d]
call fcn.00427b4c
jmp 0x47ca90
mov eax, esi
call fcn.00427b5c
jmp 0x47ca90
cmp dword [edi + 0x7d], 0
je 0x47ca37
mov eax, dword [edi + 0x7d]
mov eax, dword [eax + 0x1d]
call fcn.00427bb4
jmp 0x47ca3e
mov ecx, dword [esp + 0x1f]
mov eax, ecx
call fcn.00531428
mov dword [esp + 0x3b], eax
mov eax, ebx
call fcn.00531428
mov ebx, eax
mov ecx, dword [ecx + 4]
mov eax, dword [esp + 0x3b]
call fcn.0042f77d
cmp eax, 0
jne 0x47ca64
jmp 0x47ca87
mov eax, esi
call fcn.00427bc4
lea ebx, [esp + 0x60]
mov dword [esp + 0x1f], ebx
mov eax, ebx
call fcn.005319c8
mov eax, ebx
call fcn.0053176c
mov eax, dword [ebx + 4]
mov ebx, dword [esp + 0x23]
mov ecx, ebx
mov ecx, dword [ecx + 4]
cmp eax, ecx
je 0x47ca0c
mov eax, dword [esp + 0x1f]
call fcn.005313e0
cmp dword [edi + 0x7d], 0
je 0x47ca80
mov eax, dword [edi + 0x7d]
mov eax, dword [eax + 0x1d]
call fcn.00427b4c
jmp 0x47ca87
mov eax, esi
call fcn.00427b5c
mov eax, dword [esp + 0x1f]
call fcn.005319e0
mov eax, dword [esp + 0x23]
call fcn.005319e0
sub esp, 8
mov eax, 4
mov ebx, dword [esp + eax + 0x94]
mov dword [esp + eax], ebx
sub eax, 4
jae 0x47caa1
mov eax, edi
mov ebx, dword [esp + 0x3f]
mov ecx, edx
call fcn.0047f004
mov dword [esp + 0xa0], eax
cmp dword [esp + 0xa0], 0
jne 0x47da67
mov eax, edx
cmp eax, 3
je 0x47cb19
cmp eax, 9
je 0x47cb19
cmp eax, 0xa
je 0x47cb19
cmp eax, 0xd
je 0x47cb19
cmp eax, 0x17
je 0x47cb19
cmp eax, 0x19
je 0x47cb19
cmp eax, 0x1a
je 0x47cb19
cmp eax, 0x25
je 0x47cb19
cmp eax, 0x26
je 0x47cb19
cmp eax, 0x30
je 0x47cb19
cmp eax, 0x34
je 0x47cb19
cmp eax, 0x3c
je 0x47cb19
cmp eax, 0x48
jne 0x47cbd8
mov eax, dword [edi + 0x45]
and eax, 1
cmp eax, 0
jne 0x47cbd8
mov ecx, dword [edi + 0x79]
cmp ecx, 0
jne 0x47cb3d
jmp 0x47cbd8
cmp dword [ecx + 8], 0
jne 0x47cb52
jmp 0x47cb72
mov eax, dword [edi + 0x49]
and eax, 1
cmp eax, 0
je 0x47cb35
jmp 0x47cb72
cmp dword [ecx + 0x18], 0
jne 0x47cb87
jmp 0x47cba9
mov eax, dword [edi]
call fcn.004b3428
mov eax, dword [ecx + 4]
mov ebx, dword [ecx + 8]
call fcn.00481478
mov dword [edi], eax
mov eax, edi
mov ebx, 0
call fcn.0041d128
mov eax, dword [edi + 0x49]
and eax, 2
cmp eax, 0
je 0x47cb4a
jmp 0x47cba9
cmp dword [ecx + 0x10], 0
jne 0x47cbb6
jmp 0x47cbd8
mov eax, dword [edi + 8]
call fcn.004b3428
mov eax, dword [ecx + 0x14]
mov ebx, dword [ecx + 0x18]
call fcn.00481478
mov dword [edi + 8], eax
mov eax, edi
mov ebx, 1
call fcn.0041d128
mov eax, dword [edi + 0x49]
and eax, 4
cmp eax, 0
je 0x47cb7f
jmp 0x47cbd8
mov eax, dword [edi + 0xc]
call fcn.004b3428
mov eax, dword [ecx + 0xc]
mov ebx, dword [ecx + 0x10]
call fcn.00481478
mov dword [edi + 0xc], eax
mov eax, edi
mov ebx, 2
call fcn.0041d128
mov eax, edx
cmp eax, 1
jne 0x47cc09
cmp byte [esp + 0x43], 0
je 0x47cbf6
mov dword [esp + 0xa0], 0x50
jmp 0x47da67
mov eax, edi
call fcn.0041d570
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 0x33
jne 0x47cc39
mov eax, dword [esp + 0x3f]
lea eax, [eax + 4]
mov eax, dword [eax - 4]
mov dword [esp + 0x98], eax
mov eax, edi
mov ebx, dword [esp + 0x98]
call fcn.0041d3e4
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 4
jne 0x47cc51
mov eax, edi
call fcn.0041d3d0
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 0x3b
jne 0x47cc81
mov eax, dword [esp + 0x3f]
lea eax, [eax + 4]
mov eax, dword [eax - 4]
mov dword [esp + 0x98], eax
mov eax, edi
mov ebx, dword [esp + 0x98]
call fcn.0041d3bc
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 0x5c
je 0x47cc8b
cmp eax, 0x5d
jne 0x47cc9b
mov dword [esp + 0xa0], 0
jmp 0x47da67
cmp eax, 0x34
pushfd
lea ebx, [esp + 0xa0]
popfd
jne 0x47ccda
mov eax, dword [edi + 0x45]
and eax, 2
cmp eax, 0
je 0x47ccc7
mov eax, edi
call fcn.0041d3ac
mov dword [esp + 0xa0], eax
jmp 0x47da67
mov eax, edi
call fcn.0041d354
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 0xe
jne 0x47ccf2
mov eax, edi
call fcn.0041ca00
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 7
jne 0x47cd61
cmp byte [esp + 0x43], 0
je 0x47cd18
push edx
push dword [esp + 0x84]
call dword [0x546488]
add esp, 8
mov dword [esp + 0xa0], eax
jmp 0x47cd2b
cmp edi, 0
je 0x47cd2b
mov eax, edi
call fcn.0041d310
mov dword [esp + 0xa0], eax
cmp dword [esp + 0xa0], 0
jne 0x47da67
mov eax, esi
call fcn.00427950
push 0
push 1
push 1
mov eax, esi
mov ebx, 0
mov ecx, 0
mov edx, 0
call fcn.00436420
jmp 0x47da67
cmp eax, 0x68
jne 0x47cdfd
mov eax, dword [esp + 0x3f]
lea eax, [eax + 4]
mov eax, dword [eax - 4]
cmp byte [esp + 0x43], 0
je 0x47cd96
push eax
push edx
push dword [esp + 0x88]
call dword [0x546488]
add esp, 0xc
mov dword [esp + 0xa0], eax
jmp 0x47cda9
cmp edi, 0
je 0x47cda9
mov eax, edi
call fcn.0041d310
mov dword [esp + 0xa0], eax
cmp dword [esp + 0xa0], 0
jne 0x47cdd6
mov eax, esi
call fcn.00427950
push 0
push 1
push 1
mov eax, esi
mov ebx, 0
mov ecx, 0
mov edx, 0
call fcn.00436420
cmp edi, 0
jne 0x47cde2
mov eax, esi
call fcn.004363c8
cmp byte [esp + 0x43], 0
je 0x47da67
mov eax, esi
call fcn.0047c40c
and byte [esi + 0x38], 0xfe
jmp 0x47da67
cmp eax, 0x19
je 0x47ce0b
cmp eax, 0x30
jne 0x47cede
mov eax, dword [esp + 0x3f]
lea eax, [eax + 4]
mov ebx, dword [eax - 4]
cmp dword [edi], 0
jne 0x47ce27
mov dword [esp + 0xa0], 0x2d
jmp 0x47ce74
mov eax, dword [edi]
cmp byte [eax], 0
je 0x47ce1a
cmp byte [esp + 0x43], 0
je 0x47ce50
push ebx
push edx
push dword [esp + 0x88]
call dword [0x546488]
add esp, 0xc
mov dword [esp + 0xa0], eax
jmp 0x47ce74
cmp byte [0x546464], 0
je 0x47ce66
mov dword [esp + 0xa0], 0x5a
jmp 0x47ce74
mov eax, edi
call fcn.0041ce44
mov dword [esp + 0xa0], eax
cmp dword [esp + 0xa0], 0
jne 0x47da67
mov dword [edi + 0x31], ebx
mov eax, ebx
and eax, 0x20
cmp eax, 0
je 0x47ce98
or dword [edi + 0x45], 0x80
jmp 0x47cea9
mov eax, ebx
and eax, 0x10
cmp eax, 0
jne 0x47ce8f
and dword [edi + 0x45], 0xffffff7f
mov eax, ebx
mov ecx, 4
cdq
idiv ecx
cmp edx, 0
je 0x47cebe
or dword [edi + 0x45], 0x40
jmp 0x47cec2
and dword [edi + 0x45], 0xffffffbf
push 0
push 1
push 1
mov eax, esi
mov ecx, 0
mov edx, 0
call fcn.00436420
jmp 0x47da67
cmp eax, 0x52
jne 0x47cf00
mov eax, dword [esp + 0x3f]
lea eax, [eax + 4]
mov ecx, dword [eax - 4]
mov eax, dword [edi + 0x11]
mov ebx, dword [edi + 0x79]
mov ebx, dword [ebx + 0x23]
call fcn.00432b7c
jmp 0x47da67
cmp eax, 9
jne 0x47cf51
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
call fcn.00481478
mov ebx, eax
cmp ebx, 0
je 0x47da67
cmp byte [esp + 0x43], 0
je 0x47cf37
mov dword [esp + 0xa0], 0x50
jmp 0x47cf45
mov eax, edi
call fcn.0041d2d4
mov dword [esp + 0xa0], eax
mov eax, ebx
call fcn.004b3428
jmp 0x47da67
cmp eax, 0xa
jne 0x47cfa8
mov al, byte [edi + 0x10]
and al, 2
shr al, 1
cmp al, 0
jne 0x47cf71
mov dword [esp + 0xa0], 0x36
jmp 0x47da67
cmp byte [esp + 0x43], 0
je 0x47cf95
push edx
push dword [esp + 0x84]
call dword [0x546488]
add esp, 8
mov dword [esp + 0xa0], eax
jmp 0x47da67
mov eax, edi
call fcn.0041d288
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 0xd
jne 0x47cfc0
mov eax, edi
call fcn.0041d250
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 0x5f
jne 0x47d018
mov eax, dword [esp + 0x3f]
lea eax, [eax + 4]
mov ecx, dword [eax - 4]
mov eax, edi
call fcn.0041cb00
mov dword [esp + 0xa0], eax
cmp dword [esp + 0xa0], 0
je 0x47cffd
mov dword [esp + 0xa0], 0
mov dword [esp + 0x9c], 0
mov eax, dword [esp + 0x9c]
cmp eax, ecx
seta al
movzx eax, al
mov dword [esp + 0x9c], eax
jmp 0x47da67
cmp eax, 0x1d
jne 0x47d047
cmp byte [esp + 0x43], 0
je 0x47d034
mov dword [esp + 0xa0], 0x50
jmp 0x47da67
mov eax, edi
call fcn.0041d2e4
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 0x35
jne 0x47d07d
mov eax, dword [esp + 0x3f]
lea eax, [eax + 4]
mov ebx, dword [eax - 4]
lea eax, [eax + 4]
mov eax, dword [eax - 4]
mov dword [esp + 0x98], eax
mov eax, edi
mov ecx, dword [esp + 0x98]
call fcn.0041d130
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 0x10
jne 0x47d0a6
mov eax, dword [esp + 0x3f]
lea eax, [eax + 4]
mov ebx, dword [eax - 4]
mov eax, edi
mov ecx, dword [edi + 0x15]
mov eax, dword [esp + 0x33]
call fcn.0041d130
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 0x48
pushfd
lea ecx, [esp + 0xa4]
mov dword [esp + 0x50], ecx
popfd
jne 0x47d106
mov eax, dword [esp + 0x3f]
lea eax, [eax + 4]
mov edx, dword [eax - 4]
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
call fcn.00481478
mov ebx, eax
cmp ebx, 0
je 0x47da67
push dword [esp + 0x44]
push dword [esp + 0x4c]
push ecx
mov eax, edi
mov ecx, edx
mov edx, 0x5463a8
call fcn.0047e410
cmp eax, 0
mov eax, ebx
call fcn.004b3428
jmp 0x47da67
cmp eax, 0x56
jne 0x47d156
mov eax, dword [esp + 0x3f]
lea eax, [eax + 4]
mov edx, dword [eax - 4]
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
call fcn.00481478
mov ebx, eax
cmp ebx, 0
je 0x47da67
push dword [esp + 0x48]
push ecx
mov eax, dword [esp + 0x3f]
mov ecx, edx
mov edx, dword [esp + 0x4c]
call fcn.0047ddb0
cmp eax, 0
mov eax, ebx
call fcn.004b3428
jmp 0x47da67
cmp eax, 0x62
jne 0x47d167
mov eax, edi
call fcn.0047b6b4
jmp 0x47da67
cmp eax, 0x63
jne 0x47d18c
mov eax, dword [esp + 0x3f]
lea eax, [eax + 4]
mov ebx, dword [eax - 4]
mov eax, edi
call fcn.0047b68c
mov dword [esp + 0xa0], eax
mov edi, dword [esi + 0x33]
jmp 0x47da67
cmp eax, 0x66
jne 0x47d1ae
mov eax, dword [esp + 0x3f]
lea eax, [eax + 4]
mov ebx, dword [eax - 4]
mov eax, edi
call fcn.0047b66c
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 0x14
jne 0x47d1de
mov eax, edi
call fcn.0041d5c4
mov dword [esp + 0xa0], eax
cmp dword [esp + 0xa0], 0x20
je 0x47d1b3
jmp 0x47da67
call fcn.0041d96c
cmp eax, ecx
jl 0x47d1f9
jmp 0x47da67
cmp eax, 0x15
jne 0x47d22a
mov eax, dword [esp + 0x3f]
lea eax, [eax + 4]
mov ebx, dword [eax - 4]
call fcn.0041d96c
mov ecx, eax
imul eax, ebx, 0x64
add ecx, eax
mov eax, edi
call fcn.0041d5c4
mov dword [esp + 0xa0], eax
cmp dword [esp + 0xa0], 0
je 0x47d21b
mov eax, 0x3e8
call fcn.004360d8
cmp dword [esp + 0xa0], 0
jne 0x47d1d0
jmp 0x47da67
cmp eax, 0x17
jne 0x47d2c3
mov eax, dword [edi + 0x45]
and eax, 1
cmp eax, 0
je 0x47d25f
mov eax, dword [edi]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x94]
call fcn.0042f564
mov dword [esp + 0x98], eax
jmp 0x47da67
mov eax, dword [edi + 0x79]
mov eax, dword [eax + 4]
mov dword [esp + 0x94], eax
mov eax, dword [edi + 0x79]
cmp dword [eax + 8], 0xffffffff
jne 0x47d28c
mov eax, dword [edi + 0x79]
mov eax, dword [eax + 4]
call fcn.0042f564
mov dword [esp + 0x98], eax
jmp 0x47da67
mov eax, dword [edi + 0x79]
cmp dword [eax + 8], 0xfffffffe
jne 0x47d2b1
mov eax, dword [edi + 0x79]
mov eax, dword [eax + 4]
movsx eax, byte [eax]
mov dword [esp + 0x98], eax
inc dword [esp + 0x94]
jmp 0x47da67
mov eax, dword [edi + 0x79]
mov eax, dword [eax + 8]
mov dword [esp + 0x98], eax
jmp 0x47da67
cmp eax, 0x18
jne 0x47d2ff
cmp byte [esp + 0x43], 0
je 0x47d2ec
push edx
push dword [esp + 0x84]
call dword [0x546488]
add esp, 8
mov dword [esp + 0xa0], eax
jmp 0x47da67
mov eax, edi
call fcn.0041d09c
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 0x1b
jne 0x47d317
mov eax, edi
call fcn.0041cb84
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 0x3d
jne 0x47d365
cmp byte [esp + 0x43], 0
je 0x47d34a
push dword [esp + 0x48]
push dword [esp + 0x48]
push 0
push edx
push dword [esp + 0x90]
call dword [0x546488]
add esp, 0x14
mov dword [esp + 0xa0], eax
jmp 0x47da67
mov eax, edi
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
call fcn.0041cb58
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 0x1f
jne 0x47d3a1
cmp byte [esp + 0x43], 0
je 0x47d38e
push edx
push dword [esp + 0x84]
call dword [0x546488]
add esp, 8
mov dword [esp + 0xa0], eax
jmp 0x47da67
mov eax, edi
call fcn.0041d038
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 0x1e
jne 0x47d3d0
cmp byte [esp + 0x43], 0
je 0x47d3bd
mov dword [esp + 0xa0], 0x50
jmp 0x47da67
mov eax, edi
call fcn.0041cb44
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 0x36
jne 0x47d3f9
mov eax, dword [esp + 0x3f]
lea eax, [eax + 4]
mov ebx, dword [eax - 4]
mov eax, edi
mov ecx, dword [edi + 0x15]
mov eax, dword [esp + 0x33]
call fcn.0041d434
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 0x37
jne 0x47d42f
mov eax, dword [esp + 0x3f]
lea eax, [eax + 4]
mov ebx, dword [eax - 4]
lea eax, [eax + 4]
mov eax, dword [eax - 4]
mov dword [esp + 0x98], eax
mov eax, edi
mov ecx, dword [esp + 0x98]
call fcn.0041d434
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 0x20
jne 0x47d45e
cmp byte [esp + 0x43], 0
je 0x47d44b
mov dword [esp + 0xa0], 0x50
jmp 0x47da67
mov eax, edi
call fcn.0041cb00
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 0x42
jne 0x47d484
mov eax, edi
mov ecx, dword [esp + 0x90]
mov ebx, dword [esp + 0x8c]
call fcn.0041ca98
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 0x25
jne 0x47d4b3
cmp byte [esp + 0x43], 0
je 0x47d4a0
mov dword [esp + 0xa0], 0x50
jmp 0x47da67
mov eax, edi
call fcn.0041cabc
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 0x26
jne 0x47d4f0
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
call fcn.00481478
mov ebx, eax
cmp ebx, 0
je 0x47da67
mov eax, edi
call fcn.0041caac
mov dword [esp + 0xa0], eax
mov eax, ebx
call fcn.004b3428
jmp 0x47da67
cmp eax, 0x3f
jne 0x47d5a7
mov dword [edi + 0x7d], 0
cmp byte [esp + 0x43], 0
je 0x47d534
push dword [esp + 0x90]
push dword [esp + 0x90]
push 0
push edx
push dword [esp + 0x90]
call dword [0x546488]
add esp, 0x14
mov dword [esp + 0xa0], eax
jmp 0x47da67
mov eax, dword [esp + 0x90]
cmp dword [edi + 0x95], eax
je 0x47d56d
mov eax, dword [edi + 0x91]
call fcn.004b3428
mov eax, dword [esp + 0x90]
call fcn.004b3d54
mov dword [edi + 0x91], eax
mov eax, dword [esp + 0x90]
mov dword [edi + 0x95], eax
mov eax, dword [edi + 0x91]
mov ebx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
call fcn.0042f617
mov eax, edi
mov ecx, dword [esp + 0x90]
mov ebx, dword [esp + 0x8c]
call fcn.0041ca8c
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 0x3c
jne 0x47d686
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
call fcn.00481478
mov ecx, eax
mov dword [esp + 0x2f], ecx
cmp ecx, 0
je 0x47da67
mov eax, ecx
mov ebx, 0x546358
call fcn.00429604
cmp eax, 0
jne 0x47d634
mov eax, 0x5463a8
mov ebx, 0x70af54
mov ecx, 0xa
call fcn.004c26f8
mov dword [esp + 0x94], eax
mov eax, 0x70af54
call fcn.0042f564
mov dword [esp + 0x98], eax
mov eax, 0x5463a8
mov dword [esp + 0x9c], eax
mov eax, dword [edi + 0x45]
and eax, 1
cmp eax, 0
jne 0x47d678
mov eax, esi
call fcn.0047ba58
mov edi, 0
jmp 0x47d678
cmp byte [esp + 0x43], 0
je 0x47d660
push dword [esp + 0x48]
push dword [esp + 0x48]
push 0
push ecx
push edx
push dword [esp + 0x94]
call dword [0x546488]
add esp, 0x18
mov dword [esp + 0xa0], eax
jmp 0x47d678
mov eax, edi
mov ebx, ecx
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
call fcn.0041cbac
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x2f]
call fcn.004b3428
jmp 0x47da67
cmp eax, 0x29
jne 0x47d6c9
mov dword [edi + 0x7d], 0
cmp byte [esp + 0x43], 0
je 0x47d6b6
push edx
push dword [esp + 0x84]
call dword [0x546488]
add esp, 8
mov dword [esp + 0xa0], eax
jmp 0x47da67
mov eax, edi
call fcn.0041ca5c
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 0x2b
jne 0x47d825
mov dword [edi + 0x7d], 0
mov eax, dword [esp + 0x3f]
lea eax, [eax + 4]
mov ebx, dword [eax - 4]
mov dword [edi + 0xa1], ebx
mov eax, edi
call fcn.0041ca6c
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp dword [esp + 0x8c], 0
jne 0x47d70b
jmp 0x47d7d6
cmp dword [esp + 0x90], 0
je 0x47d7d6
mov dword [esp + 0x74], esi
movzx eax, byte [esi + 0x1c]
and eax, 0x10
cmp eax, 0
je 0x47d730
call fcn.0053b554
jmp 0x47d735
mov eax, 0
mov dword [esp + 0x78], eax
lea ebx, [esp + 0x74]
mov eax, 0x70af38
call fcn.00518b84
mov ecx, eax
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
call fcn.00481478
mov dword [ecx + 0x10], eax
mov eax, dword [edi + 0x75]
call fcn.004f5ef0
mov dword [ecx + 0x14], eax
mov eax, esi
mov ebx, dword [esp + 0x2b]
call fcn.0047c47c
mov dword [esp + 0xa0], eax
cmp dword [esp + 0xa0], 0
je 0x47d7a6
mov eax, dword [edi + 0x71]
call fcn.004b3428
mov dword [edi + 0x71], 0
mov ebx, ecx
mov eax, 0x70af38
call fcn.005187fc
jmp 0x47d924
or byte [esi + 0x38], 1
mov byte [0x546464], 1
jmp 0x47d924
cmp byte [ebx], 0
jne 0x47d7bd
jmp 0x47d7f8
mov dword [esp + 0xa0], 0x60
jmp 0x47d819
mov al, byte [esp + 0x43]
cmp al, 0
je 0x47d6fc
cmp al, 0
je 0x47d924
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
call fcn.00481478
mov ebx, eax
cmp ebx, 0
jne 0x47d7b6
mov eax, esi
call fcn.0047c40c
mov eax, dword [edi + 0x71]
call fcn.004b3428
mov dword [edi + 0x71], 0
and byte [esi + 0x38], 0xfe
mov byte [0x546464], 0
mov eax, ebx
call fcn.004b3428
jmp 0x47d924
cmp eax, 0x47
jne 0x47d93e
mov eax, dword [esp + 0x3f]
lea eax, [eax + 4]
mov edx, dword [eax - 4]
mov eax, dword [esp + 0x90]
mov dword [esp + 0x98], eax
mov ebx, dword [esp + 0x90]
inc ebx
mov eax, 1
call fcn.004b363c
mov ebx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
call fcn.0042f617
mov dword [esp + 0x94], eax
mov ebx, dword [esp + 0x88]
mov eax, dword [esp + 0x84]
call fcn.00481478
mov ebx, eax
mov dword [esp + 0x27], ebx
cmp ebx, 0
je 0x47d92d
mov eax, ebx
call fcn.004c2b08
mov ecx, eax
cmp ecx, 0x7346
je 0x47d7ca
cmp byte [esp + 0x43], 0
je 0x47d901
mov eax, dword [esp + 0x8c]
mov ebx, dword [esp + 0x90]
call fcn.00434fc0
mov eax, dword [esp + 0x84]
mov ebx, dword [esp + 0x88]
call fcn.00434fc0
lea eax, [esp + 0x70]
push eax
push edx
push ecx
push dword [esp + 0x27]
push dword [esp + 0x90]
call dword [0x546488]
add esp, 0x14
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x70]
mov dword [edi + 0x45], eax
jmp 0x47d924
push dword [esp + 0x94]
push dword [esp + 0x9c]
push dword [esp + 0x54]
mov eax, edi
mov ecx, edx
mov edx, 0x5463a8
call fcn.0047df8c
cmp eax, 0
mov eax, dword [esp + 0x27]
call fcn.004b3428
mov eax, dword [esp + 0x94]
call fcn.004b3428
jmp 0x47da67
cmp eax, 0x55
jne 0x47d9df
mov eax, dword [esp + 0x3f]
lea eax, [eax + 4]
mov edx, dword [eax - 4]
mov eax, dword [esp + 0x90]
mov dword [esp + 0x98], eax
mov ebx, dword [esp + 0x90]
inc ebx
mov eax, 1
call fcn.004b363c
mov ebx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
call fcn.0042f617
mov dword [esp + 0x94], eax
mov ebx, dword [esp + 0x90]
mov eax, dword [esp + 0x8c]
call fcn.00481478
mov ebx, eax
cmp ebx, 0
je 0x47d9ce
push dword [esp + 0x98]
push dword [esp + 0x50]
mov eax, dword [esp + 0x3f]
mov ecx, edx
mov edx, dword [esp + 0x9c]
call fcn.0047dd9c
cmp eax, 0
jne 0x47d9ce
mov eax, ebx
call fcn.004b3428
mov eax, dword [esp + 0x94]
call fcn.004b3428
jmp 0x47da67
cmp eax, 0x32
jne 0x47d9f4
mov eax, edi
call fcn.0041d3f8
mov dword [esp + 0xa0], eax
jmp 0x47da67
cmp eax, 0x5b
jne 0x47da07
mov eax, fcn.0047c60c
mov dword [esp + 0x9c], eax
jmp 0x47da67
cmp eax, 0x49
jne 0x47da5c
mov dword [esp + 0x6c], 0
mov eax, edi
lea ebx, [esp + 0x6c]
call fcn.0047c600
mov dword [esp + 0xa0], eax
cmp dword [esp + 0x6c], 0
je 0x47da67
mov eax, dword [esp + 0x6c]
mov ebx, 0x21
sub edx, edx
div ebx
mov ebx, eax
mov eax, dword [edi + 0x21]
mov ecx, 0x21
sub edx, edx
div ecx
sub ebx, eax
inc ebx
mov dword [esp + 0x9c], ebx
jmp 0x47da67
cmp byte [edi + 0x52], 0
jne 0x47da6e
jmp 0x47daad
mov dword [esp + 0xa0], 0x50
cmp edi, 0
jne 0x47da54
jmp 0x47daad
movzx eax, byte [esi + 0x38]
and eax, 2
cmp eax, 0
jne 0x47daad
mov ebx, dword [esp + 0x17]
cmp ebx, 0
jne 0x47da8a
call fcn.0041d96c
mov ebx, eax
call fcn.0041d96c
sub eax, ebx
push eax
push dword [esp + 0xa4]
mov eax, edi
mov ebx, dword [esp + 0x3f]
mov edx, dword [esp + 0x23]
mov ecx, 0x546364
call fcn.0047f79c
cmp dword [esp + 0x8c], 0
je 0x47dac3
lea eax, [esp + 0x8c]
call fcn.00421488
cmp dword [esp + 0x84], 0
je 0x47dad9
lea eax, [esp + 0x84]
call fcn.00421488
cmp edi, 0
je 0x47daf8
push dword [esp + 0x50]
mov eax, edi
mov ebx, dword [esp + 0x3b]
mov ecx, dword [esp + 0x1f]
mov edx, dword [esp + 0xa4]
call fcn.0047ee98
mov edx, dword [esp + 0x1b]
mov eax, edx
cmp eax, 0x48
je 0x47db26
cmp eax, 0x56
je 0x47db26
cmp eax, 0x4f
je 0x47db26
cmp eax, 0x17
je 0x47db26
cmp eax, 0x3d
je 0x47db26
cmp eax, 0x3e
je 0x47db26
cmp eax, 0x60
je 0x47db26
cmp eax, 0x3c
jne 0x47db4f
cmp edi, 0
je 0x47db40
mov eax, dword [esp + 0x94]
mov ebx, dword [esp + 0x98]
call fcn.00434fc0
jmp 0x47db4f
mov eax, 0x546368
mov ebx, 0
call fcn.00434fc0
cmp edi, 0
je 0x47dc86
cmp dword [esp + 0xa0], 0xffffffff
je 0x47db7b
mov eax, dword [esp + 0xa0]
mov dword [edi + 0x4d], eax
jmp 0x47db82
mov eax, dword [edi + 0x41]
and eax, 1
cmp eax, 0
jne 0x47dba6
jmp 0x47dbab
mov dword [edi + 0x4d], 0
cmp dword [esp + 0xa0], 0
je 0x47db6e
jmp 0x47dbab
cmp edx, 0x1f
je 0x47dbd8
jmp 0x47dc39
cmp edx, 0xe
je 0x47dcb6
jmp 0x47dcc1
call fcn.00421ea4
cmp dword [esp + 0xa0], 0x2f
jne 0x47dbb9
mov byte [edi + 0x51], 1
mov eax, dword [edi + 0x41]
and eax, 4
cmp eax, 0
je 0x47dc39
mov eax, edx
mov dword [edi + 0x35], eax
mov eax, dword [esp + 0xa0]
mov dword [edi + 0x39], eax
cmp edx, 0x18
jne 0x47db8e
mov eax, edi
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
call fcn.0041cb58
mov eax, dword [edi + 0x85]
cmp dword [esp + 0x98], eax
je 0x47dc20
mov eax, dword [edi + 0x81]
call fcn.004b3428
mov eax, dword [esp + 0x98]
call fcn.004b3d54
mov dword [edi + 0x81], eax
mov eax, dword [esp + 0x98]
mov dword [edi + 0x85], eax
mov eax, dword [edi + 0x81]
mov ebx, dword [esp + 0x94]
mov ecx, dword [esp + 0x98]
call fcn.0042f617
mov eax, dword [edi + 0x41]
and eax, 0x10
cmp eax, 0
je 0x47dc49
mov eax, edx
mov dword [edi + 0x3d], eax
mov eax, dword [edi + 0x41]
and eax, 0x20
cmp eax, 0
je 0x47dc73
mov eax, dword [edi + 0x89]
call fcn.004b3428
mov dword [edi + 0x89], 0
mov dword [edi + 0x8d], 0
cmp edx, 0x68
jne 0x47dc86
mov eax, esi
call fcn.0047ba58
mov eax, esi
call fcn.004363c8
cmp dword [esp + 0xa0], 0
je 0x47dcc1
cmp dword [esp + 0xa0], 0xffffffff
je 0x47dcad
mov eax, dword [esp + 0xa0]
call fcn.00421f94
mov eax, esi
call fcn.00421d80
cmp edx, 2
jne 0x47db98
mov dword [esp + 0x9c], 1
mov eax, dword [esp + 0x9c]
pop edi
pop esi
pop edx
pop ecx
pop ebx
add esp, 0x90
ret