Function at 0x42c8f0
Capabilities:
Parse credit card information

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x48398b
push eax
mov dword fs:[0], esp
sub esp, 0x27c
push ebx
push ebp
push esi
mov esi, ecx
push edi
push 0x48ec6c
mov ecx, dword [esi]
add ecx, 0x18fb50
call fcn.00445d20
mov ecx, dword [esi]
add ecx, 0x18fb50
call fcn.00445cf0
mov eax, 0x10
lea edx, [esi + 0xc01a]
mov word [esi + 0xe976], ax
mov word [esi + 0xe978], ax
mov ebx, 0x20
mov edi, 6
xor ebp, ebp
mov eax, edx
mov ecx, 0x20
mov word [eax - 2], di
mov word [eax], bp
add eax, 0x80
dec ecx
jne 0x42c95c
add edx, 4
dec ebx
jne 0x42c955
lea ecx, [esp + 0x30]
call fcn.00445960
mov edi, dword [esp + 0x29c]
mov ecx, dword [esi]
push edi
push 0x48b424
add ecx, 0x18fb50
mov dword [esp + 0x29c], ebp
call fcn.00445df0
push edi
lea ecx, [esp + 0x34]
call fcn.004459b0
test al, al
jne 0x42c9f5
mov ecx, dword [esi]
push 0x48b410
add ecx, 0x18fb50
call fcn.00445d20
mov ecx, dword [esi]
add ecx, 0x18fb50
call fcn.00445d00
mov ecx, dword [esi]
push 0x48b3f8
add ecx, 0x18fb50
call fcn.00445d20
lea ecx, [esp + 0x30]
mov dword [esp + 0x294], 0xffffffff
call fcn.00445990
xor al, al
jmp 0x42e3d0
lea eax, [esi + 0xa014]
push edi
push eax
call fcn.00439930
add esp, 8
lea ecx, [esp + 0x30]
mov word [esi + 0xe94c], bp
push 0x48cf10
call fcn.00445a70
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445bc0
cmp eax, 2
jne 0x42ca38
mov word [esi + 0xe94c], ax
lea ecx, [esp + 0x30]
call fcn.00445bc0
cmp eax, 3
jne 0x42ca4d
mov word [esi + 0xe94c], ax
xor ebx, ebx
push 0x48ec60
lea ecx, [esp + 0x34]
mov dword [esp + 0x14], ebx
call fcn.00445a70
mov ecx, dword [esi]
push 0x48ec50
add ecx, 0x18fb50
call fcn.00445d20
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
mov word [esi + 0xe974], bx
call fcn.00445ba0
lea ecx, [esp + 0x10]
push eax
push ecx
call fcn.00439930
mov eax, dword [esp + 0x18]
add esp, 8
mov ebp, 1
cmp byte [eax], 0
je 0x42cb70
xor edi, edi
cmp byte [edi + eax], 0x42
jne 0x42cad1
mov ecx, dword [esi]
push 0x48ec40
add ecx, 0x18fb50
call fcn.00445d20
or word [esi + 0xe974], bp
mov eax, dword [esp + 0x10]
cmp byte [edi + eax], 0x43
jne 0x42caf4
mov ecx, dword [esi]
push 0x48ec34
add ecx, 0x18fb50
call fcn.00445d20
or byte [esi + 0xe974], 2
mov eax, dword [esp + 0x10]
cmp byte [edi + eax], 0x46
jne 0x42cb17
mov ecx, dword [esi]
push 0x48ec28
add ecx, 0x18fb50
call fcn.00445d20
or byte [esi + 0xe974], 0x10
mov eax, dword [esp + 0x10]
cmp byte [edi + eax], 0x48
jne 0x42cb3a
mov ecx, dword [esi]
push 0x48ec18
add ecx, 0x18fb50
call fcn.00445d20
or byte [esi + 0xe974], 4
mov eax, dword [esp + 0x10]
cmp byte [edi + eax], 0x54
jne 0x42cb5d
mov ecx, dword [esi]
push 0x48ec08
add ecx, 0x18fb50
call fcn.00445d20
or byte [esi + 0xe974], 8
mov eax, dword [esp + 0x10]
inc ebx
mov edi, ebx
and edi, 0xffff
cmp byte [edi + eax], 0
jne 0x42caae
lea edx, [esp + 0x10]
push edx
call fcn.00439990
add esp, 4
lea ecx, [esp + 0x30]
push 0x48ebfc
call fcn.00445a70
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
lea eax, [esi + 0xe948]
push eax
call fcn.00439930
add esp, 8
lea ecx, [esp + 0x30]
call fcn.00445ba0
mov ecx, dword [esi]
push eax
add ecx, 0x1e43b0
call fcn.0044a580
lea ecx, [esp + 0x30]
call fcn.00445ba0
mov ecx, dword [esi]
push eax
push 0x48ebec
add ecx, 0x18fb50
call fcn.00445df0
push 0x48ebe0
lea ecx, [esp + 0x34]
call fcn.00445a70
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445ba0
lea ecx, [esi + 0xe944]
push eax
push ecx
call fcn.00439930
add esp, 8
lea ecx, [esp + 0x30]
call fcn.00445ba0
mov ecx, dword [esi]
push eax
add ecx, 0x1e43c0
call fcn.0043bd20
lea ecx, [esp + 0x30]
call fcn.00445ba0
mov ecx, dword [esi]
push eax
push 0x48ebd0
add ecx, 0x18fb50
call fcn.00445df0
mov ecx, dword [esi]
push 0
add ecx, 0x738888
call fcn.00432760
mov ecx, dword [esi]
push 0x48ebb4
add ecx, 0x18fb50
call fcn.00445d20
push 0x48ebac
lea ecx, [esp + 0x34]
call fcn.00445a70
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
push 0x48eba4
call fcn.004398a0
add esp, 8
test al, al
je 0x42cca5
mov ecx, dword [esi]
push 2
add ecx, 0x738888
call fcn.00432760
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
push 0x48d210
call fcn.004398a0
add esp, 8
test al, al
je 0x42ccce
mov ecx, dword [esi]
push ebp
add ecx, 0x738888
call fcn.00432760
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
push 0x48eb9c
call fcn.004398a0
add esp, 8
test al, al
je 0x42ccf8
mov ecx, dword [esi]
push 3
add ecx, 0x738888
call fcn.00432760
mov ecx, dword [esi]
push 0x48eb94
add ecx, 0x18fb50
call fcn.00445d20
push 0x48eb90
lea ecx, [esp + 0x34]
mov byte [esi + 0xe996], 0
call fcn.00445a70
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445bc0
cmp eax, ebp
jne 0x42cda9
lea ecx, [esp + 0x30]
mov byte [esi + 0xe996], 1
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445bb0
fstp dword [esi + 0xe998]
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445bb0
fstp dword [esi + 0xe99c]
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
call fcn.00439b90
mov edx, dword [esi + 0xe99c]
mov ecx, dword [esi]
add esp, 4
mov dword [esi + 0xe9a0], eax
add ecx, 0x18fb60
push eax
mov eax, dword [esi + 0xe998]
push edx
push eax
call fcn.0043e500
push 0x48eb88
lea ecx, [esp + 0x34]
call fcn.00445a70
mov ecx, dword [esi]
add ecx, 0x74ef44
call fcn.00406700
mov ecx, dword [esi]
push 0x48eb7c
add ecx, 0x18fb50
call fcn.00445d20
lea edi, [esi + 0xe924]
mov ebx, 4
xor ebp, ebp
mov eax, dword [edi]
mov word [edi - 4], bp
cmp eax, ebp
je 0x42cdf6
push edi
call fcn.00439990
add esp, 4
add edi, 8
dec ebx
jne 0x42cde3
lea ecx, [esp + 0x30]
xor ebp, ebp
call fcn.00445ab0
test al, al
je 0x42d013
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
push 0x48eb74
call fcn.004398a0
add esp, 8
test al, al
je 0x42cfe7
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
push 0x48eb70
call fcn.004398a0
add esp, 8
test al, al
je 0x42cea3
mov edi, ebp
lea ecx, [esp + 0x30]
and edi, 0xffff
mov word [esi + edi*8 + 0xe920], 1
call fcn.00445ab0
lea ecx, [esp + 0x30]
lea ebx, [esi + edi*8 + 0xe924]
call fcn.00445ba0
push eax
push ebx
call fcn.00439930
mov ecx, dword [ebx]
add esp, 8
push ecx
mov ecx, dword [esi]
push 0x48eb64
add ecx, 0x18fb50
call fcn.00445df0
inc edi
cmp edi, 4
jge 0x42cea3
inc ebp
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
push 0x48c920
call fcn.004398a0
add esp, 8
test al, al
je 0x42cf0f
mov edi, ebp
lea ecx, [esp + 0x30]
and edi, 0xffff
mov word [esi + edi*8 + 0xe920], 2
call fcn.00445ab0
lea ecx, [esp + 0x30]
lea ebx, [esi + edi*8 + 0xe924]
call fcn.00445ba0
push eax
push ebx
call fcn.00439930
mov edx, dword [ebx]
mov ecx, dword [esi]
add esp, 8
add ecx, 0x18fb50
push edx
push 0x48eb58
call fcn.00445df0
inc edi
cmp edi, 4
jge 0x42cf0f
inc ebp
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
push 0x48eb50
call fcn.004398a0
add esp, 8
test al, al
je 0x42cf7b
mov edi, ebp
lea ecx, [esp + 0x30]
and edi, 0xffff
mov word [esi + edi*8 + 0xe920], 3
call fcn.00445ab0
lea ecx, [esp + 0x30]
lea ebx, [esi + edi*8 + 0xe924]
call fcn.00445ba0
push eax
push ebx
call fcn.00439930
mov eax, dword [ebx]
mov ecx, dword [esi]
add esp, 8
add ecx, 0x18fb50
push eax
push 0x48eb44
call fcn.00445df0
inc edi
cmp edi, 4
jge 0x42cf7b
inc ebp
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
push 0x48eb3c
call fcn.004398a0
add esp, 8
test al, al
je 0x42cfe7
mov edi, ebp
lea ecx, [esp + 0x30]
and edi, 0xffff
mov word [esi + edi*8 + 0xe920], 4
call fcn.00445ab0
lea ecx, [esp + 0x30]
lea ebx, [esi + edi*8 + 0xe924]
call fcn.00445ba0
push eax
push ebx
call fcn.00439930
mov ecx, dword [ebx]
add esp, 8
push ecx
mov ecx, dword [esi]
push 0x48eb30
add ecx, 0x18fb50
call fcn.00445df0
inc edi
cmp edi, 4
jge 0x42cfe7
inc ebp
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
push 0x48eb24
call fcn.004398a0
add esp, 8
test al, al
jne 0x42d013
lea ecx, [esp + 0x30]
call fcn.00445ab0
test al, al
jne 0x42ce0f
push 0x48eb1c
lea ecx, [esp + 0x34]
call fcn.00445a70
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445bc0
test eax, eax
je 0x42d05b
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445ba0
lea edx, [esi + 0xa010]
push eax
push edx
call fcn.00439930
add esp, 8
jmp 0x42d07a
mov eax, dword [esi + 0xa010]
lea edi, [esi + 0xa010]
test eax, eax
je 0x42d074
push edi
call fcn.00439990
add esp, 4
mov dword [edi], 0
push 0x48eb14
lea ecx, [esp + 0x34]
call fcn.00445a70
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445ba0
mov ecx, dword [esi]
push eax
push 0x48eb08
add ecx, 0x18fb50
call fcn.00445df0
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
lea eax, [esi + 0xe940]
push eax
call fcn.00439930
add esp, 8
lea ecx, [esp + 0x30]
push 0x48eb00
call fcn.00445a70
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445bc0
xor ebp, ebp
xor edi, edi
cmp ax, bp
mov word [esi + 0xe986], ax
jbe 0x42d13b
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445ba0
lea ecx, [esp + 0x10]
push eax
push ecx
call fcn.00439930
mov eax, dword [esp + 0x18]
add esp, 8
cmp eax, ebp
je 0x42d131
movsx dx, byte [eax]
mov eax, edi
and eax, 0xffff
mov word [esi + eax*2 + 0xe988], dx
inc edi
cmp di, word [esi + 0xe986]
jb 0x42d0f6
lea ecx, [esp + 0x10]
push ecx
call fcn.00439990
add esp, 4
lea ecx, [esp + 0x30]
push 0x48eaf8
call fcn.00445a70
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445ba0
mov ecx, dword [esi]
push eax
push 0x48eaec
add ecx, 0x18fb50
call fcn.00445df0
lea ecx, [esp + 0x30]
mov word [esi + 0xe94e], bp
xor edi, edi
call fcn.00445ba0
lea edx, [esp + 0x10]
push eax
push edx
call fcn.00439930
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, 1
cmp byte [ecx], 0
je 0x42d1f6
mov eax, ecx
mov ebp, 2
mov edx, 8
cmp byte [eax], 0x46
jne 0x42d1c1
or word [esi + 0xe94e], bx
cmp byte [eax], 0x50
jne 0x42d1cd
or word [esi + 0xe94e], bp
cmp byte [eax], 0x45
jne 0x42d1d9
or byte [esi + 0xe94e], 4
cmp byte [eax], 0x42
jne 0x42d1e5
or word [esi + 0xe94e], dx
inc edi
mov eax, edi
and eax, 0xffff
add eax, ecx
cmp byte [eax], 0
jne 0x42d1b5
xor ebp, ebp
lea ecx, [esp + 0x10]
push ecx
call fcn.00439990
add esp, 4
lea ecx, [esp + 0x30]
push 0x48eae4
call fcn.00445a70
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
mov word [esi + 0xe61c], bx
mov word [esi + 0xe61a], bp
call fcn.00445bc0
mov ecx, dword [esi]
mov word [esi + 0xe618], ax
and eax, 0xffff
add ecx, 0x18fb50
push eax
push 0x48e6bc
call fcn.00445f00
cmp word [esi + 0xe618], bp
mov dword [esp + 0x18], ebp
jbe 0x42d42c
mov ebx, 0x10
lea ecx, [esp + 0x30]
call fcn.00445ab0
mov edi, dword [esp + 0x18]
xor ebp, ebp
and edi, 0xffff
lea ecx, [esp + 0x30]
mov dword [esp + 0x10], ebp
mov word [esi + edi*2 + 0xe61e], bp
call fcn.00445ba0
lea edx, [esp + 0x10]
push eax
push edx
call fcn.00439930
mov eax, dword [esp + 0x18]
mov ecx, dword [esi]
add esp, 8
add ecx, 0x18fb50
push edi
push eax
call fcn.00445f00
mov ecx, dword [esp + 0x10]
cmp byte [ecx], 0
je 0x42d409
mov eax, ecx
mov edx, 0x80
cmp byte [eax], 0x50
jne 0x42d2d3
add word [esi + edi*2 + 0xe61e], 0x60
cmp byte [eax], 0x44
jne 0x42d2e2
add word [esi + edi*2 + 0xe61e], 0x280
cmp byte [eax], 0x57
jne 0x42d2f1
mov word [esi + edi*2 + 0xe61e], 0x2711
cmp byte [eax], 0x31
jne 0x42d2fd
mov dword [esi + edi*4 + 0xe720], ebx
cmp byte [eax], 0x32
jne 0x42d30d
mov dword [esi + edi*4 + 0xe720], 0x20
cmp byte [eax], 0x33
jne 0x42d31d
mov dword [esi + edi*4 + 0xe720], 0x40
cmp byte [eax], 0x34
jne 0x42d329
mov dword [esi + edi*4 + 0xe720], edx
cmp byte [eax], 0x35
jne 0x42d339
mov dword [esi + edi*4 + 0xe720], 0x10000
cmp byte [eax], 0x36
jne 0x42d349
mov dword [esi + edi*4 + 0xe720], 0x20000
cmp byte [eax], 0x37
jne 0x42d359
mov dword [esi + edi*4 + 0xe720], 0x40000
cmp byte [eax], 0x38
jne 0x42d369
mov dword [esi + edi*4 + 0xe720], 0x80000
cmp byte [eax], 0x39
jne 0x42d379
mov dword [esi + edi*4 + 0xe720], 0x100000
cmp byte [eax], 0x53
jne 0x42d386
or byte [esi + edi*4 + 0xe721], 1
cmp byte [eax], 0x4c
jne 0x42d393
or byte [esi + edi*4 + 0xe721], 2
cmp byte [eax], 0x4b
jne 0x42d3a0
or byte [esi + edi*4 + 0xe721], 4
cmp byte [eax], 0x48
jne 0x42d3ad
or byte [esi + edi*4 + 0xe721], 8
cmp byte [eax], 0x49
jne 0x42d3ba
or byte [esi + edi*4 + 0xe721], 0x10
cmp byte [eax], 0x43
jne 0x42d3c7
or byte [esi + edi*4 + 0xe721], 0x20
cmp byte [eax], 0x54
jne 0x42d3d4
or byte [esi + edi*4 + 0xe721], 0x40
cmp byte [eax], 0x42
jne 0x42d3e1
or byte [esi + edi*4 + 0xe721], 0x80
cmp byte [eax], 0x30
jne 0x42d3f6
mov eax, dword [esi + edi*4 + 0xe720]
or al, 4
mov dword [esi + edi*4 + 0xe720], eax
inc ebp
mov eax, ebp
and eax, 0xffff
add eax, ecx
cmp byte [eax], 0
jne 0x42d2c5
lea ecx, [esp + 0x10]
push ecx
call fcn.00439990
mov eax, dword [esp + 0x1c]
add esp, 4
inc eax
cmp ax, word [esi + 0xe618]
mov dword [esp + 0x18], eax
jb 0x42d266
push 0x48eadc
lea ecx, [esp + 0x34]
call fcn.00445a70
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445bc0
lea ecx, [esp + 0x30]
mov word [esi + 0xe976], ax
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445bc0
push 0x48ead4
lea ecx, [esp + 0x34]
mov word [esi + 0xe978], ax
call fcn.00445a70
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445bc0
lea ecx, [esp + 0x30]
mov word [esi + 0xe97a], ax
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445bc0
mov ecx, dword [esi]
mov word [esi + 0xe97c], ax
xor edx, edx
and eax, 0xffff
mov dx, word [esi + 0xe97a]
push eax
push edx
push 0x48eacc
add ecx, 0x18fb50
call fcn.00446400
lea edi, [esi + 0xea6c]
mov ecx, edi
call fcn.0043b290
xor eax, eax
push ecx
mov ax, word [esi + 0xe97c]
xor ecx, ecx
mov dword [esp + 0x18], eax
mov cx, word [esi + 0xe97a]
fild dword [esp + 0x18]
mov dword [esp + 0x18], ecx
fadd dword [0x4851d4]
fmul dword [0x4851d0]
fstp dword [esp]
fild dword [esp + 0x18]
push 0
push ecx
mov ecx, edi
fadd dword [0x4851d4]
fmul dword [0x4851d0]
fstp dword [esp]
call fcn.0043b520
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445ba0
mov ecx, dword [esi]
push eax
add ecx, 0x1e43c0
call fcn.0043bb80
lea ecx, [esp + 0x30]
mov word [esi + 0xeacc], ax
call fcn.00445ba0
mov ecx, dword [esi]
push eax
push 0x48eabc
add ecx, 0x18fb50
call fcn.00445df0
mov eax, dword [esi]
mov dx, word [eax + 0x74fbde]
lea ecx, [eax + 0x399764]
mov word [esi + 0xe982], dx
call fcn.004174a0
and eax, 0xffff
mov ecx, dword [esi]
xor edx, edx
mov dx, word [ecx + eax*2 + 0x74fb52]
xor eax, eax
mov ax, word [esi + 0xe982]
mov dword [esp + 0x14], edx
fild dword [esp + 0x14]
mov dword [esp + 0x14], eax
fimul dword [esp + 0x14]
fmul dword [0x485214]
call fcn.00479904
lea edi, [esi + 0xead0]
mov word [esi + 0xe982], ax
mov ecx, edi
mov word [esi + 0xe984], 1
mov word [esi + 0xa008], 0
call fcn.0043b290
xor ecx, ecx
xor edx, edx
mov cx, word [esi + 0xe97c]
mov dx, word [esi + 0xe97a]
mov dword [esp + 0x14], ecx
push ecx
fild dword [esp + 0x18]
mov dword [esp + 0x18], edx
fadd dword [0x4851d4]
fmul dword [0x4851d0]
fstp dword [esp]
fild dword [esp + 0x18]
push 0
push ecx
mov ecx, edi
fadd dword [0x4851d4]
fmul dword [0x4851d0]
fstp dword [esp]
call fcn.0043b520
mov ecx, dword [esi]
push 0x48b68c
add ecx, 0x1e43b0
mov byte [esi + 0xeb10], 1
call fcn.00449fc0
lea ecx, [esp + 0x30]
mov word [esi + 0xeb16], ax
call fcn.00445ba0
push eax
push 0x48eab4
call fcn.004398a0
add esp, 8
test al, al
je 0x42d67e
mov eax, dword [esi]
mov word [esi + 0xe984], 2
mov cx, word [eax + 0x74fbe0]
mov word [esi + 0xe982], cx
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
push 0x48eaac
call fcn.004398a0
add esp, 8
test al, al
je 0x42d6b2
mov edx, dword [esi]
mov word [esi + 0xe984], 3
mov ax, word [edx + 0x74fbe2]
mov word [esi + 0xe982], ax
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
mov byte [esi + 0xeaac], 1
call fcn.00445ba0
mov ecx, dword [esi]
push eax
add ecx, 0x1e43b0
call fcn.00449fc0
lea ecx, [esp + 0x30]
mov word [esi + 0xeab2], ax
call fcn.00445ba0
mov ecx, dword [esi]
push eax
push 0x48ea98
add ecx, 0x18fb50
call fcn.00445df0
push 0x48ea8c
lea ecx, [esp + 0x34]
call fcn.00445a70
mov ecx, dword [esi]
add ecx, 0x74ef44
call fcn.00406700
mov ecx, dword [esi]
push 0x48ea7c
add ecx, 0x18fb50
call fcn.00445d20
lea ecx, [esp + 0x30]
call fcn.00445ab0
test al, al
je 0x42d7d1
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
push 0x48ea74
call fcn.004398a0
add esp, 8
test al, al
je 0x42d7a5
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445bc0
lea ecx, [esp + 0x30]
mov edi, eax
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445bc0
lea ecx, [esp + 0x30]
mov ebp, eax
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445bc0
mov ecx, dword [esi]
push 0
push 0
push 0
push edi
push eax
push ebp
add ecx, 0x74ef44
call fcn.00408580
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
push 0x48ea68
call fcn.004398a0
add esp, 8
test al, al
jne 0x42d7d1
lea ecx, [esp + 0x30]
call fcn.00445ab0
test al, al
jne 0x42d73a
push 0x48ea60
lea ecx, [esp + 0x34]
call fcn.00445a70
movsx ecx, word [esp + 0x28]
push ecx
mov ecx, dword [esi]
push 0x48ea58
add ecx, 0x18fb50
call fcn.00445f00
lea ecx, [esp + 0x30]
call fcn.00445ab0
test al, al
je 0x42d8bd
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
push 0x48ea54
call fcn.004398a0
add esp, 8
test al, al
je 0x42d891
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445bc0
lea ecx, [esp + 0x30]
mov edi, eax
call fcn.00445ab0
lea ecx, [esp + 0x30]
movsx edi, di
call fcn.00445bc0
lea ecx, [esp + 0x30]
mov word [esi + edi*2 + 0xe950], ax
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445bc0
mov word [esi + edi*2 + 0xe960], ax
mov ecx, dword [esi]
xor edx, edx
and eax, 0xffff
mov dx, word [esi + edi*2 + 0xe950]
push eax
push edx
push 0x48ea48
add ecx, 0x18fb50
call fcn.00446400
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
push 0x48ea3c
call fcn.004398a0
add esp, 8
test al, al
jne 0x42d8bd
lea ecx, [esp + 0x30]
call fcn.00445ab0
test al, al
jne 0x42d808
push 0x48ea30
lea ecx, [esp + 0x34]
mov word [esi + 0xe972], 4
mov word [esi + 0xe970], 0
call fcn.00445a70
lea ecx, [esp + 0x30]
call fcn.00445ab0
test al, al
je 0x42da8e
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
push 0x48ea28
call fcn.004398a0
add esp, 8
test al, al
je 0x42da62
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445bc0
movsx edi, ax
lea ecx, [esp + 0x10]
push 0x48ea1c
lea eax, [edi + edi*2]
push ecx
lea ebp, [esi + eax*4]
mov word [ebp + 0xe018], 1
call fcn.00439930
add esp, 8
lea ecx, [esp + 0x30]
call fcn.00445ba0
lea edx, [esp + 0x10]
push eax
push edx
call fcn.00439b10
lea eax, [esp + 0x18]
push 0x48b784
push eax
call fcn.00439b10
add esp, 0x10
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445ba0
lea ecx, [ebp + 0xe020]
push eax
push ecx
call fcn.00439930
add esp, 8
lea ecx, [esp + 0x30]
call fcn.00445ba0
lea edx, [esp + 0x10]
push eax
push edx
call fcn.00439b10
add esp, 8
lea ecx, [esp + 0x30]
call fcn.00445ba0
mov ecx, dword [esi]
push eax
add ecx, 0x1e43c0
call fcn.0043bb80
mov word [ebp + 0xe01a], ax
lea eax, [esp + 0x10]
push 0x48ea18
push eax
call fcn.00439b10
xor ecx, ecx
lea edx, [esp + 0x18]
mov cx, word [ebp + 0xe01a]
push ecx
push edx
call fcn.00439a70
add esp, 0x10
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
mov ecx, esi
call fcn.0042a3f0
lea ecx, [edi + edi*2 + 0x3807]
lea edx, [esp + 0x10]
push 0x48ea14
push edx
mov word [esi + ecx*4], ax
call fcn.00439b10
add esp, 8
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
mov ecx, esi
call fcn.0042a3f0
and eax, 0xffff
push eax
lea eax, [esp + 0x14]
push eax
call fcn.00439a70
lea ecx, [esp + 0x18]
push 0x48db9c
push ecx
call fcn.00439b10
mov edx, dword [esp + 0x20]
mov ecx, dword [esi]
add esp, 0x10
add ecx, 0x18fb50
push edx
call fcn.00445d20
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
push 0x48ea0c
call fcn.004398a0
add esp, 8
test al, al
jne 0x42da8e
lea ecx, [esp + 0x30]
call fcn.00445ab0
test al, al
jne 0x42d8ee
mov bp, word [esi + 0xe978]
push 0x48ea04
add bp, bp
lea ecx, [esp + 0x34]
dec ebp
call fcn.00445a70
mov ecx, dword [esi]
push 0x48e9f8
add ecx, 0x18fb50
call fcn.00445d20
lea ecx, [esp + 0x30]
call fcn.00445ab0
test al, al
je 0x42dc8a
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
push 0x48e3e8
call fcn.004398a0
add esp, 8
test al, al
je 0x42dc4a
lea ecx, [esp + 0x30]
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445ba0
mov ecx, dword [esi]
push eax
push 0x48e3e0
add ecx, 0x18fb50
call fcn.00445df0
lea ecx, [esp + 0x30]
call fcn.00445ba0
mov cl, byte [eax]
xor edi, edi
test cl, cl
mov dword [esp + 0x1c], edi
je 0x42dc49
xor edx, edx
xor ecx, ecx
mov cx, word [esi + 0xe976]
add ecx, ecx
cmp edx, ecx
je 0x42dc45
mov ecx, edx
movsx ebx, bp
shl ecx, 6
add ecx, ebx
xor ebx, ebx
mov word [esi + ecx*2 + 0xa018], bx
mov word [esi + ecx*2 + 0x8008], bx
mov bl, byte [edx + eax]
cmp bl, 0x23
mov ebx, 1
jne 0x42db75
mov word [esi + ecx*2 + 0xa018], bx
mov word [esi + ecx*2 + 0x8008], bx
cmp byte [edx + eax], 0x26
jne 0x42db8d
mov word [esi + ecx*2 + 0xa018], 2
mov word [esi + ecx*2 + 0x8008], bx
cmp byte [edx + eax], 0x25
jne 0x42dba7
mov word [esi + ecx*2 + 0xa018], 3
mov word [esi + ecx*2 + 0x8008], 2
cmp byte [edx + eax], 0x34
jne 0x42dbbf
mov word [esi + ecx*2 + 0xa018], 4
mov word [esi + ecx*2 + 0x8008], bx
cmp byte [edx + eax], 0x35
jne 0x42dbd7
mov word [esi + ecx*2 + 0xa018], 5
mov word [esi + ecx*2 + 0x8008], bx
cmp byte [edx + eax], 0x36
jne 0x42dbef
mov word [esi + ecx*2 + 0xa018], 6
mov word [esi + ecx*2 + 0x8008], bx
cmp byte [edx + eax], 0x37
jne 0x42dc07
mov word [esi + ecx*2 + 0xa018], 7
mov word [esi + ecx*2 + 0x8008], bx
cmp byte [edx + eax], 0x38
jne 0x42dc1f
mov word [esi + ecx*2 + 0xa018], 8
mov word [esi + ecx*2 + 0x8008], bx
cmp byte [edx + eax], 0x39
jne 0x42dc37
mov word [esi + ecx*2 + 0xa018], 9
mov word [esi + ecx*2 + 0x8008], bx
inc edi
movsx edx, di
cmp byte [edx + eax], 0
jne 0x42db29
mov dword [esp + 0x1c], edi
dec ebp
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
push 0x48e9f0
call fcn.004398a0
add esp, 8
test al, al
jne 0x42dc78
lea ecx, [esp + 0x30]
call fcn.00445ab0
test al, al
jne 0x42daca
jmp 0x42dc8a
mov ecx, dword [esi]
push 0x48e9e4
add ecx, 0x18fb50
call fcn.00445d20
mov ax, word [esi + 0xe978]
push 0x48e9dc
dec ax
lea ecx, [esp + 0x34]
mov dword [esp + 0x24], eax
call fcn.00445a70
mov ecx, dword [esi]
push 0x48e9d0
add ecx, 0x18fb50
call fcn.00445d20
lea ecx, [esp + 0x30]
call fcn.00445ab0
test al, al
je 0x42dde1
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
push 0x48e3e8
call fcn.004398a0
add esp, 8
test al, al
je 0x42ddb5
movsx ebp, word [esp + 0x20]
mov ecx, dword [esi]
push ebp
push 0x48e3e0
add ecx, 0x18fb50
call fcn.00445f00
xor ebx, ebx
cmp word [esi + 0xe976], bx
mov dword [esp + 0x1c], ebx
jbe 0x42ddb1
xor edi, edi
lea ecx, [esp + 0x30]
call fcn.00445ab0
shl edi, 5
lea ecx, [esp + 0x30]
add edi, ebp
call fcn.00445bc0
lea ecx, [esp + 0x30]
mov word [esi + edi*4 + 0xc018], ax
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445ba0
xor ecx, ecx
mov cx, word [esi + edi*4 + 0xc018]
add ecx, 0x12ad
lea edx, [ecx + ecx*2]
mov cx, word [esi + edx*4]
xor edx, edx
mov word [esi + edi*4 + 0xc01a], cx
mov cl, byte [eax]
test cl, cl
je 0x42dd98
mov ecx, eax
cmp byte [ecx], 0x31
jne 0x42dd7b
or byte [esi + edi*4 + 0xc01a], 1
cmp byte [ecx], 0x32
jne 0x42dd88
or byte [esi + edi*4 + 0xc01a], 2
inc edx
mov ecx, edx
and ecx, 0xffff
add ecx, eax
cmp byte [ecx], 0
jne 0x42dd6e
inc ebx
xor edx, edx
mov dx, word [esi + 0xe976]
movsx edi, bx
cmp edi, edx
jl 0x42dd14
mov dword [esp + 0x1c], ebx
dec dword [esp + 0x20]
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
push 0x48ea0c
call fcn.004398a0
add esp, 8
test al, al
jne 0x42dde1
lea ecx, [esp + 0x30]
call fcn.00445ab0
test al, al
jne 0x42dcc8
mov ecx, esi
call fcn.00429790
mov ecx, esi
call fcn.00430280
lea ecx, [esp + 0x24c]
call fcn.0043b250
mov ecx, dword [esi]
push 0x48e340
add ecx, 0x1e43c0
call fcn.0043bb80
mov ecx, dword [esi]
push 0x48b7a4
add ecx, 0x1e43b0
mov word [esi + 0xa00c], ax
mov word [esi + 0xea04], ax
mov byte [esi + 0xe9e4], 1
call fcn.00449fc0
cmp word [esi + 0xe978], 0
mov word [esi + 0xe9ea], ax
mov dword [esp + 0x24], 0
jbe 0x42dfce
xor ebx, ebx
cmp word [esi + 0xe976], bx
jbe 0x42dfb8
mov eax, dword [esp + 0x24]
and eax, 0xffff
movsx ecx, word [esp + 0x20]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
movsx eax, word [esp + 0x1c]
fadd dword [0x4851d4]
shl eax, 6
add eax, ecx
fmul dword [0x4851d0]
lea edx, [esi + eax*2 + 0x8008]
mov dword [esp + 0x28], edx
fstp dword [esp + 0x2c]
lea ecx, [esp + 0x24c]
call fcn.0043b290
mov ecx, dword [esp + 0x18]
mov edi, ebx
and edi, 0xffff
mov eax, edi
mov dword [esp + 0x14], edi
shl eax, 5
lea ebp, [eax + ecx]
test byte [esi + ebp*4 + 0xc01a], 1
je 0x42deda
push 0x3fc90fdb
lea ecx, [esp + 0x250]
call fcn.0043b390
test byte [esi + ebp*4 + 0xc01a], 2
je 0x42def5
push 0x40490fdb
lea ecx, [esp + 0x250]
call fcn.0043b390
fild dword [esp + 0x14]
mov edx, dword [esp + 0x2c]
push edx
push 0
fadd dword [0x4851d4]
push ecx
lea ecx, [esp + 0x258]
fmul dword [0x4851d0]
fstp dword [esp]
call fcn.0043b5a0
test byte [esi + ebp*4 + 0xc01a], 8
je 0x42df54
mov eax, dword [esp + 0x18]
mov ecx, 3
shl edi, 6
add eax, edi
mov word [esi + eax*4 + 0x8008], cx
mov word [esi + eax*4 + 0x8088], cx
mov word [esi + eax*4 + 0x808a], cx
mov word [esi + eax*4 + 0x800a], cx
mov ecx, dword [esp + 0x28]
xor eax, eax
mov word [ecx], 1
mov ax, word [esi + ebp*4 + 0xc018]
mov ecx, dword [esi]
lea edx, [eax + eax*2]
mov ax, word [esi + edx*4 + 0xe01a]
and eax, 0xffff
lea edx, [eax + eax*8]
lea eax, [eax + edx*4]
lea edx, [ecx + eax*4 + 0x1e43e8]
lea eax, [esp + 0x24c]
push edx
push eax
xor eax, eax
mov ax, word [esi + 0xa00c]
lea edx, [eax + eax*8]
lea eax, [eax + edx*4]
lea ecx, [ecx + eax*4 + 0x1e43e8]
call fcn.004468e0
inc ebx
cmp bx, word [esi + 0xe976]
jb 0x42de9b
mov eax, dword [esp + 0x24]
inc eax
cmp ax, word [esi + 0xe978]
mov dword [esp + 0x24], eax
jb 0x42de51
xor ebx, ebx
cmp word [esi + 0xe978], bx
jbe 0x42e020
mov cx, word [esi + 0xe976]
mov edi, 0x100
xor eax, eax
test cx, cx
jbe 0x42e016
mov edx, ebx
and edx, 0xffff
mov ecx, eax
and ecx, 0xffff
shl ecx, 5
add ecx, edx
inc eax
mov word [esi + ecx*4 + 0xd018], di
mov cx, word [esi + 0xe976]
cmp ax, cx
jb 0x42dff4
inc ebx
cmp bx, word [esi + 0xe978]
jb 0x42dfe5
push 0x48e9c8
lea ecx, [esp + 0x34]
call fcn.00445a70
test al, al
je 0x42e392
mov ecx, dword [esi]
push 0x48e9bc
add ecx, 0x18fb50
call fcn.00445d20
mov di, word [esi + 0xe978]
lea ecx, [esp + 0x30]
dec di
mov dword [esp + 0x20], edi
call fcn.00445ab0
test al, al
je 0x42e1b7
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
push 0x48e3e8
call fcn.004398a0
add esp, 8
test al, al
je 0x42e18b
mov ecx, dword [esi]
movsx ebx, di
push ebx
push 0x48e3e0
add ecx, 0x18fb50
call fcn.00445f00
cmp word [esi + 0xe976], 0
mov dword [esp + 0x1c], 0
jbe 0x42e180
xor edi, edi
mov ebp, 0x20
lea ecx, [esp + 0x30]
call fcn.00445ab0
shl edi, 5
lea ecx, [esp + 0x30]
add edi, ebx
call fcn.00445bc0
lea ecx, [esp + 0x30]
mov word [esi + edi*4 + 0xd018], ax
call fcn.00445ab0
lea ecx, [esp + 0x30]
call fcn.00445ba0
xor ecx, ecx
mov cx, word [esi + edi*4 + 0xd018]
add ecx, 0x12ad
lea edx, [ecx + ecx*2]
mov cx, word [esi + edx*4]
xor edx, edx
mov word [esi + edi*4 + 0xd01a], cx
mov cl, byte [eax]
test cl, cl
je 0x42e163
mov ecx, eax
cmp byte [ecx], 0x31
jne 0x42e11f
or byte [esi + edi*4 + 0xd01a], 1
cmp byte [ecx], 0x32
jne 0x42e12c
or byte [esi + edi*4 + 0xd01a], 2
cmp byte [ecx], 0x33
jne 0x42e139
or word [esi + edi*4 + 0xd01a], bp
cmp byte [ecx], 0x34
jne 0x42e146
or byte [esi + edi*4 + 0xd01a], 0x40
cmp byte [ecx], 0x35
jne 0x42e153
or byte [esi + edi*4 + 0xd01a], 0x80
inc edx
mov ecx, edx
and ecx, 0xffff
add ecx, eax
cmp byte [ecx], 0
jne 0x42e112
mov eax, dword [esp + 0x1c]
xor edx, edx
mov dx, word [esi + 0xe976]
inc eax
movsx edi, ax
cmp edi, edx
mov dword [esp + 0x1c], eax
jl 0x42e0b8
mov eax, dword [esp + 0x20]
dec eax
mov dword [esp + 0x20], eax
mov edi, eax
lea ecx, [esp + 0x30]
call fcn.00445ba0
push eax
push 0x48e9b0
call fcn.004398a0
add esp, 8
test al, al
jne 0x42e1b7
lea ecx, [esp + 0x30]
call fcn.00445ab0
test al, al
jne 0x42e066
mov ecx, dword [esi]
push 0x48e334
add ecx, 0x1e43c0
call fcn.0043bb80
mov ecx, dword [esi]
push 0x48b79c
add ecx, 0x1e43b0
mov word [esi + 0xa00e], ax
mov word [esi + 0xea68], ax
mov byte [esi + 0xea48], 1
call fcn.00449fc0
cmp word [esi + 0xe978], 0
mov word [esi + 0xea4e], ax
mov dword [esp + 0x24], 0
jbe 0x42e392
xor ebx, ebx
cmp word [esi + 0xe976], bx
jbe 0x42e37c
mov ebp, dword [esp + 0x24]
and ebp, 0xffff
mov dword [esp + 0x18], ebp
mov eax, ebx
and eax, 0xffff
mov dword [esp + 0x14], eax
shl eax, 5
lea edi, [eax + ebp]
cmp word [esi + edi*4 + 0xd018], 0x100
je 0x42e36e
lea ecx, [esp + 0x24c]
call fcn.0043b290
test byte [esi + edi*4 + 0xd01a], 1
je 0x42e272
push 0x3fc90fdb
lea ecx, [esp + 0x250]
call fcn.0043b390
test byte [esi + edi*4 + 0xd01a], 2
je 0x42e28d
push 0x40490fdb
lea ecx, [esp + 0x250]
call fcn.0043b390
test byte [esi + edi*4 + 0xd01a], 0x20
je 0x42e2ac
push 0
push 0x3fa00000
push 0
lea ecx, [esp + 0x258]
call fcn.0043b520
test byte [esi + edi*4 + 0xd01a], 0x40
je 0x42e2cb
push 0
push 0x40200000
push 0
lea ecx, [esp + 0x258]
call fcn.0043b520
mov al, byte [esi + edi*4 + 0xd01a]
test al, al
jns 0x42e2eb
push 0
push 0x40a00000
push 0
lea ecx, [esp + 0x258]
call fcn.0043b520
fild dword [esp + 0x18]
push ecx
fadd dword [0x4851d4]
fmul dword [0x4851d0]
fstp dword [esp]
fild dword [esp + 0x18]
push 0
push ecx
lea ecx, [esp + 0x258]
fadd dword [0x4851d4]
fmul dword [0x4851d0]
fstp dword [esp]
call fcn.0043b5a0
xor eax, eax
mov ecx, dword [esi]
mov ax, word [esi + edi*4 + 0xd018]
lea eax, [eax + eax*2]
mov ax, word [esi + eax*4 + 0xe01a]
and eax, 0xffff
lea edx, [eax + eax*8]
lea eax, [eax + edx*4]
lea edx, [ecx + eax*4 + 0x1e43e8]
lea eax, [esp + 0x24c]
push edx
push eax
xor eax, eax
mov ax, word [esi + 0xa00e]
lea edx, [eax + eax*8]
lea eax, [eax + edx*4]
lea ecx, [ecx + eax*4 + 0x1e43e8]
call fcn.004468e0
inc ebx
cmp bx, word [esi + 0xe976]
jb 0x42e22a
mov eax, dword [esp + 0x24]
inc eax
cmp ax, word [esi + 0xe978]
mov dword [esp + 0x24], eax
jb 0x42e20d
lea ecx, [esp + 0x30]
call fcn.00445bd0
mov ecx, dword [esi]
add ecx, 0x18fb50
call fcn.00445d00
mov ecx, dword [esi]
push 0x48b29c
add ecx, 0x18fb50
call fcn.00445d20
lea ecx, [esp + 0x30]
mov dword [esp + 0x294], 0xffffffff
call fcn.00445990
mov al, 1
mov ecx, dword [esp + 0x28c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x288
ret 4