Function at 0x553150
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5c2795
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa8
push ebx
push esi
push edi
mov ebx, ecx
xor esi, esi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x24], ebx
mov dword [ebp - 4], esi
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x50], esi
mov word [ebp - 0x54], si
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x14], esi
mov word [ebp - 0x18], si
mov edx, dword [ebx + 0xe4]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [ebp - 4], 2
je 0x5531e2
push esi
push edx
lea ecx, [ebp - 0x1c]
call fcn.004028e0
mov al, byte [ebx + 0x2cd]
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebx + 0xe4]
push eax
neg al
push 1
push edx
sbb eax, eax
lea edx, [ebp - 0x1c]
and eax, 0xfde9
push edx
push eax
push ecx
mov ecx, ebx
call fcn.00553120
jmp 0x554502
mov eax, dword [0x6754d4]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebx + 0x28]
push 0x650f08
push ecx
mov byte [ebp - 4], 3
call fcn.0057ea00
add esp, 8
test eax, eax
je 0x553525
mov edx, dword [ebx + 0x28]
push 0x3d
push edx
call fcn.0057f890
mov edi, eax
mov eax, dword [ebx + 0x28]
push 0x3f
push eax
mov dword [ebp - 0x7c], edi
call fcn.0057f890
mov ecx, dword [ebx + 0x28]
mov esi, eax
push 0x2f
push ecx
mov dword [ebp - 0xb4], esi
call fcn.0057f890
add esp, 0x18
cmp edi, esi
mov dword [ebp - 0x68], eax
mov byte [ebp - 0x1d], 0
jbe 0x5533f9
cmp edi, eax
jbe 0x5533f9
lea edx, [edi + 1]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x55342c
push edx
lea ecx, [ebp - 0x28]
call fcn.0059aec6
mov edx, dword [ebp - 0x28]
push 0x2e
push edx
call fcn.0057f890
add esp, 8
mov dword [ebp - 0x30], eax
test eax, eax
je 0x5533f9
cmp eax, dword [ebp - 0x28]
je 0x5533f9
mov eax, dword [0x6754d4]
mov byte [ebp - 0x29], 0
mov dword [ebp - 0x34], eax
mov ecx, dword [ebx + 0x28]
lea edx, [ebp - 0x34]
push ecx
push 0x64efb0
push edx
mov byte [ebp - 4], 4
call fcn.00593b08
mov eax, dword [ebp - 0x34]
add esp, 0xc
push 0x3f
push eax
call fcn.0057e940
add esp, 8
test eax, eax
je 0x5532c9
mov byte [eax], 0
mov ecx, dword [ebp - 0x34]
push 0x2e
push ecx
call fcn.0057f890
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x553347
inc ebx
or ecx, 0xffffffff
mov edi, ebx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x553347
mov edx, dword [0x6754d4]
mov dword [ebp - 0x6c], edx
push ebx
lea eax, [ebp - 0x6c]
push 0x64efb0
push eax
mov byte [ebp - 4], 5
call fcn.00593b08
add esp, 0xc
lea ecx, [ebp - 0x6c]
call fcn.0059b185
mov ecx, dword [ebp - 0x6c]
push ecx
push 0x6533b4
call fcn.0057ea00
add esp, 8
test eax, eax
je 0x55333b
push 0x2a
push ebx
call fcn.0057e940
add esp, 8
test eax, eax
jne 0x55333b
mov byte [ebp - 0x29], 1
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 4
call fcn.0059ad3d
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x24]
inc eax
or ecx, 0xffffffff
mov esi, dword [edx + 0xec]
mov dword [ebp - 0x30], eax
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x55337b
mov esi, dword [edx + 0xdc]
test esi, esi
je 0x5533cb
mov edi, esi
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x5533cb
test esi, esi
je 0x5533cb
mov al, byte [ebp - 0x29]
test al, al
je 0x553396
push ebx
push esi
mov ecx, 0x679f60
call fcn.004247d0
test eax, eax
jne 0x5533d2
mov eax, dword [ebp - 0x30]
lea ecx, [ebp - 0x30]
push eax
call fcn.0059adab
mov ecx, dword [ebp - 0x30]
mov byte [ebp - 4], 6
push ecx
push esi
mov ecx, 0x679f60
call fcn.004247d0
test eax, eax
je 0x5533bd
mov byte [ebp - 0x1d], 1
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 4
call fcn.0059ad3d
jmp 0x5533e2
mov al, byte [ebp - 0x29]
test al, al
je 0x5533de
lea edx, [ebp - 0x34]
lea ecx, [ebp - 0x28]
push edx
call fcn.0059ae76
mov byte [ebp - 0x1d], 1
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 3
call fcn.0059ad3d
mov al, byte [ebp - 0x1d]
test al, al
jne 0x5534b3
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x68]
cmp eax, ecx
jbe 0x55346f
cmp eax, edx
jbe 0x55346f
lea edx, [eax + 1]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x55344c
push edx
lea ecx, [ebp - 0x28]
call fcn.0059aec6
jmp 0x5534b3
mov eax, dword [ebx + 0x28]
lea ecx, [ebp - 0x28]
push eax
call fcn.0059aec6
mov ecx, dword [ebp - 0x28]
push 0x3f
push ecx
call fcn.0057e940
add esp, 8
test eax, eax
je 0x5534b3
jmp 0x5534b0
mov edx, dword [ebp - 0x24]
lea ecx, [ebp - 0x28]
mov eax, dword [edx + 0x28]
push eax
call fcn.0059aec6
mov ecx, dword [ebp - 0x28]
push 0x3f
push ecx
call fcn.0057e940
add esp, 8
test eax, eax
je 0x5534b3
jmp 0x5534b0
test eax, eax
jne 0x55348f
test edx, edx
je 0x55348f
inc edx
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x55348f
push edx
lea ecx, [ebp - 0x28]
call fcn.0059aec6
jmp 0x5534b3
mov edx, dword [ebp - 0x24]
lea ecx, [ebp - 0x28]
mov eax, dword [edx + 0x28]
push eax
call fcn.0059aec6
mov ecx, dword [ebp - 0x28]
push 0x3f
push ecx
call fcn.0057e940
add esp, 8
test eax, eax
je 0x5534b3
mov byte [eax], 0
mov edx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
lea ecx, [ebp - 0x58]
mov ebx, dword [edx + 0x168]
call fcn.00401070
test esi, esi
je 0x553594
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x553594
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push eax
push eax
push 0xffffffffffffffff
push esi
push eax
push ebx
call edi
test eax, eax
mov dword [ebp - 0x50], eax
je 0x553594
lea eax, [eax + eax + 2]
push eax
call fcn.005970d9
add esp, 4
mov dword [ebp - 0x58], eax
test eax, eax
je 0x55359b
mov ecx, dword [ebp - 0x50]
push ecx
push eax
push 0xffffffffffffffff
push esi
push 0
push ebx
call edi
mov dword [ebp - 0x50], eax
jmp 0x553594
mov eax, dword [ebp - 0x24]
lea ecx, [ebp - 0x58]
mov ebx, dword [eax + 0x168]
mov esi, dword [eax + 0x28]
call fcn.00401070
test esi, esi
je 0x553585
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x553585
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push eax
push eax
push 0xffffffffffffffff
push esi
push eax
push ebx
call edi
test eax, eax
mov dword [ebp - 0x50], eax
je 0x553585
lea edx, [eax + eax + 2]
push edx
call fcn.005970d9
add esp, 4
mov dword [ebp - 0x58], eax
test eax, eax
je 0x553585
mov ecx, dword [ebp - 0x50]
push ecx
push eax
push 0xffffffffffffffff
push esi
push 0
push ebx
call edi
mov dword [ebp - 0x50], eax
mov edx, dword [ebp - 0x24]
lea ecx, [ebp - 0x28]
mov eax, dword [edx + 0x28]
push eax
call fcn.0059aec6
mov eax, dword [ebp - 0x58]
test eax, eax
jne 0x55359e
lea eax, [ebp - 0x54]
push eax
call fcn.0057e90a
add esp, 4
cmp eax, 0x7d0
jae 0x5535d1
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebp + 0x10]
push 0
push 1
mov eax, dword [ebx + 0x168]
lea edx, [ebp - 0x58]
push ecx
mov ecx, dword [ebp - 0x28]
push edx
push eax
push ecx
mov ecx, ebx
call fcn.00553120
jmp 0x5535d4
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x58]
test eax, eax
jne 0x5535de
lea eax, [ebp - 0x54]
push 0x3d
push eax
call fcn.0057e85a
mov edi, eax
mov eax, dword [ebp - 0x58]
add esp, 8
test eax, eax
jne 0x5535f5
lea eax, [ebp - 0x54]
push 0x3f
push eax
call fcn.0057e85a
mov esi, eax
mov eax, dword [ebp - 0x58]
add esp, 8
test eax, eax
jne 0x55360c
lea eax, [ebp - 0x54]
push 0x2f
push eax
call fcn.0057e85a
add esp, 8
cmp esi, edi
jae 0x553627
cmp edi, eax
jbe 0x553625
add edi, 2
push edi
jmp 0x55363b
cmp esi, edi
jbe 0x553633
cmp esi, eax
jbe 0x553633
add esi, 2
push esi
jmp 0x55363b
test eax, eax
je 0x553643
add eax, 2
push eax
lea ecx, [ebp - 0x58]
call fcn.00401fc0
mov eax, dword [ebp - 0x58]
test eax, eax
jne 0x55364d
lea eax, [ebp - 0x54]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00401fc0
mov eax, dword [ebp - 0x58]
test eax, eax
jne 0x553660
lea eax, [ebp - 0x54]
push eax
call fcn.0057e90a
add esp, 4
test eax, eax
jne 0x55390c
mov edx, dword [ebx + 0x24]
mov esi, 1
test edx, edx
je 0x55379d
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, esi
jbe 0x55379d
mov eax, dword [0x6754d4]
mov dword [ebp - 0x34], eax
push edx
lea ecx, [ebp - 0x34]
push 0x64efb0
push ecx
mov byte [ebp - 4], 7
call fcn.00593b08
mov edx, dword [ebp - 0x34]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp byte [ecx + edx - 1], 0x2f
jne 0x5536d6
dec ecx
push 0
push ecx
lea ecx, [ebp - 0x34]
call fcn.0059b1a9
mov edx, dword [ebp - 0x34]
push 0x2f
push edx
call fcn.0057f890
add esp, 8
test eax, eax
je 0x553789
inc eax
push 0
push eax
lea ecx, [ebp - 0x1c]
call fcn.004028e0
mov edx, 0x6561a4
test edx, edx
je 0x553787
push edx
call fcn.0057e90a
add esp, 4
test eax, eax
je 0x553787
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x553723
push eax
call fcn.0057e90a
add esp, 4
mov esi, eax
jmp 0x553725
xor esi, esi
push 0x6561a4
call fcn.0057e90a
add eax, esi
lea eax, [eax + eax + 2]
push eax
call fcn.005970d9
mov esi, eax
add esp, 8
test esi, esi
je 0x553787
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x553762
push eax
push esi
call fcn.0057eaaa
push 0x6561a4
push esi
call fcn.0057ea80
add esp, 0x10
jmp 0x553770
push 0x6561a4
push esi
call fcn.0057eaaa
add esp, 8
lea ecx, [ebp - 0x1c]
call fcn.00401070
push esi
mov dword [ebp - 0x1c], esi
call fcn.0057e90a
add esp, 4
mov dword [ebp - 0x14], eax
xor esi, esi
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 3
call fcn.0059ad3d
test esi, esi
je 0x5538e8
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 0x20]
test eax, eax
je 0x5538e8
xor edi, edi
lea ecx, [ebp - 0x64]
push edi
push eax
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x5c], edi
mov word [ebp - 0x60], di
call fcn.004028e0
mov eax, dword [ebp - 0x64]
mov byte [ebp - 4], 8
cmp eax, edi
jne 0x5537cf
lea eax, [ebp - 0x60]
push 0x2e
push eax
call fcn.0057e85a
add esp, 8
cmp eax, edi
je 0x5538dc
mov word [eax], di
mov esi, dword [ebp - 0x64]
cmp esi, edi
je 0x553813
push esi
call fcn.0057e90a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x55380c
cmp word [esi], 0x2e
jne 0x553807
mov word [esi], 0x5f
add esi, 2
jmp 0x5537f8
mov eax, dword [ebp - 0x64]
cmp eax, edi
jne 0x553816
lea eax, [ebp - 0x60]
mov edx, 0x66db20
test edx, edx
je 0x5538dc
cmp eax, edi
je 0x5538dc
push eax
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x44], edi
mov word [ebp - 0x48], di
call fcn.00401fc0
mov bl, 9
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00401070
push 0x66db20
lea ecx, [ebp - 0x40]
call fcn.00401f30
mov esi, dword [ebp - 0x38]
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0xa
call fcn.00401fb0
push eax
call fcn.0057e90a
lea esi, [eax + esi + 2]
lea edi, [esi + esi]
push edi
call fcn.005970d9
mov edx, eax
add esp, 8
test edx, edx
mov dword [ebp - 0x1c], edx
je 0x5538c5
mov ecx, edi
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [ebp - 0x4c]
call fcn.00401fb0
push eax
lea ecx, [ebp - 0x40]
call fcn.00401fb0
push eax
mov eax, dword [ebp - 0x1c]
push esi
push eax
call fcn.0057e89a
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.0057e90a
add esp, 0x14
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], bl
call fcn.00401070
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 8
call fcn.00401070
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 3
call fcn.00401070
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x5538f2
lea eax, [ebp - 0x18]
push eax
call fcn.0057e90a
add esp, 4
test eax, eax
jne 0x55390c
push 0x66db04
lea ecx, [ebp - 0x1c]
call fcn.00401fc0
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x553938
push eax
mov esi, eax
call fcn.0057e90a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x553935
cmp word [esi], 0x3a
jne 0x553930
mov word [esi], 0x2d
add esi, 2
jmp 0x553921
mov eax, dword [ebp - 0x1c]
mov cl, byte [ebp + 0x10]
test cl, cl
je 0x55396c
test eax, eax
je 0x553a8c
push eax
mov esi, eax
call fcn.0057e90a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x553969
cmp word [esi], 0x2a
jne 0x553964
mov word [esi], 0x2d
add esi, 2
jmp 0x553955
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x553a8c
push eax
mov esi, eax
call fcn.0057e90a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x553996
cmp word [esi], 0x3f
jne 0x553991
mov word [esi], 0x2d
add esi, 2
jmp 0x553982
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x553a8c
push esi
call fcn.0057e90a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x5539c1
cmp word [esi], 0x7c
jne 0x5539bc
mov word [esi], 0x2d
add esi, 2
jmp 0x5539ad
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x553a8c
push esi
call fcn.0057e90a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x5539ec
cmp word [esi], 0x3c
jne 0x5539e7
mov word [esi], 0x2d
add esi, 2
jmp 0x5539d8
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x553a8c
push esi
call fcn.0057e90a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x553a17
cmp word [esi], 0x3e
jne 0x553a12
mov word [esi], 0x2d
add esi, 2
jmp 0x553a03
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x553a8c
push esi
call fcn.0057e90a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x553a3e
cmp word [esi], 0x22
jne 0x553a39
mov word [esi], 0x2d
add esi, 2
jmp 0x553a2a
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x553a8c
push esi
call fcn.0057e90a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x553a65
cmp word [esi], 0x25
jne 0x553a60
mov word [esi], 0x2d
add esi, 2
jmp 0x553a51
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x553a8c
push esi
call fcn.0057e90a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x553a8c
cmp word [esi], 0x5c
jne 0x553a87
mov word [esi], 0x2d
add esi, 2
jmp 0x553a78
mov edi, dword [ebp - 0x24]
push 0x3f
mov edx, dword [edi + 0x28]
push edx
call fcn.0057e940
mov esi, eax
mov eax, dword [edi + 0x28]
push 0x2e
push eax
call fcn.0057e940
mov ebx, eax
mov eax, dword [ebp - 0x1c]
add esp, 0x10
mov dword [ebp - 0x7c], ebx
test eax, eax
jne 0x553ab9
lea eax, [ebp - 0x18]
xor edi, edi
push eax
lea ecx, [ebp - 0xa0]
mov dword [ebp - 0xa0], edi
mov dword [ebp - 0x98], edi
mov word [ebp - 0x9c], di
call fcn.00401fc0
mov eax, dword [ebp - 0xa0]
mov byte [ebp - 4], 0xb
cmp eax, edi
jne 0x553aee
lea eax, [ebp - 0x9c]
push 0x2e
push eax
call fcn.0057e85a
mov edi, eax
add esp, 8
test edi, edi
je 0x553b16
mov word [edi], 0
add edi, 2
push edi
call fcn.0057e90a
add esp, 4
test eax, eax
jne 0x553b16
xor edi, edi
test esi, esi
je 0x554130
test ebx, ebx
je 0x5540a0
cmp ebx, esi
ja 0x5540a0
inc ebx
cmp ebx, esi
je 0x55409d
test edi, edi
jne 0x55409d
mov ecx, dword [ebp - 0x24]
xor eax, eax
mov edx, dword [ecx + 0x28]
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x553ecc
mov edi, esi
sub edi, edx
inc edi
push edi
call fcn.005970d9
mov ebx, eax
add esp, 4
test ebx, ebx
mov dword [ebp - 0x68], ebx
je 0x554130
mov ecx, edi
xor eax, eax
mov edx, ecx
mov edi, ebx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [ebp - 0x24]
mov ecx, esi
mov eax, dword [edi + 0x28]
sub ecx, eax
push ecx
push eax
push ebx
call fcn.0057ee60
push 0x2e
push ebx
call fcn.0057f890
add esp, 0x14
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x30], eax
push 0
push ebx
call fcn.004028e0
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x553ec3
mov ebx, eax
push 0x66dafc
push ebx
call fcn.00587e70
add esp, 8
test eax, eax
je 0x553c0a
push 0x66daf4
push ebx
call fcn.00587e70
add esp, 8
test eax, eax
je 0x553c0a
push 0x66daec
push ebx
call fcn.00587e70
add esp, 8
test eax, eax
je 0x553c0a
push 0x66dae4
push ebx
call fcn.00587e70
add esp, 8
test eax, eax
jne 0x553ec3
mov edx, dword [edi + 0x28]
push 0x3d
push edx
call fcn.0057f890
mov ebx, dword [edi + 0x28]
mov edx, eax
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp edx, esi
jbe 0x553ec3
cmp byte [ebx + ecx - 1], 0x2e
je 0x553ec3
inc edx
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 0xa
jle 0x553c52
lea edx, [edx + ecx - 0xa]
mov eax, dword [ebp - 0x30]
mov byte [eax], 0
mov ecx, dword [0x6754d4]
mov dword [ebp - 0x30], ecx
inc eax
mov byte [ebp - 4], 0xc
push eax
push edx
mov edx, dword [ebp - 0x68]
lea eax, [ebp - 0x30]
push edx
push 0x66dad8
push eax
call fcn.00593b08
mov ecx, dword [ebp - 0x30]
add esp, 0x14
push 0
push ecx
lea ecx, [ebp - 0x1c]
call fcn.004028e0
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x553cb7
push eax
mov esi, eax
call fcn.0057e90a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x553cb4
cmp word [esi], 0x3a
jne 0x553caf
mov word [esi], 0x2d
add esi, 2
jmp 0x553ca0
mov eax, dword [ebp - 0x1c]
mov cl, byte [ebp + 0x10]
test cl, cl
je 0x553ceb
test eax, eax
je 0x553eb7
push eax
mov esi, eax
call fcn.0057e90a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x553ce8
cmp word [esi], 0x2a
jne 0x553ce3
mov word [esi], 0x2d
add esi, 2
jmp 0x553cd4
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x553eb7
push eax
mov esi, eax
call fcn.0057e90a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x553d15
cmp word [esi], 0x3f
jne 0x553d10
mov word [esi], 0x2d
add esi, 2
jmp 0x553d01
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x553eb7
push esi
call fcn.0057e90a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x553d40
cmp word [esi], 0x7c
jne 0x553d3b
mov word [esi], 0x2d
add esi, 2
jmp 0x553d2c
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x553eb7
push esi
call fcn.0057e90a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x553d6b
cmp word [esi], 0x3c
jne 0x553d66
mov word [esi], 0x2d
add esi, 2
jmp 0x553d57
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x553eb7
push esi
call fcn.0057e90a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x553d96
cmp word [esi], 0x3e
jne 0x553d91
mov word [esi], 0x2d
add esi, 2
jmp 0x553d82
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x553eb7
push esi
call fcn.0057e90a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x553dc1
cmp word [esi], 0x22
jne 0x553dbc
mov word [esi], 0x2d
add esi, 2
jmp 0x553dad
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x553eb7
push esi
call fcn.0057e90a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x553dec
cmp word [esi], 0x25
jne 0x553de7
mov word [esi], 0x2d
add esi, 2
jmp 0x553dd8
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x553eb7
push esi
call fcn.0057e90a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x553e17
cmp word [esi], 0x5c
jne 0x553e12
mov word [esi], 0x2d
add esi, 2
jmp 0x553e03
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x553eb7
push esi
call fcn.0057e90a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x553e42
cmp word [esi], 0x2f
jne 0x553e3d
mov word [esi], 0x5f
add esi, 2
jmp 0x553e2e
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x553eb7
push esi
call fcn.0057e90a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x553e69
cmp word [esi], 0x27
jne 0x553e64
mov word [esi], 0x5f
add esi, 2
jmp 0x553e55
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x553eb7
push esi
call fcn.0057e90a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x553e90
cmp word [esi], 0x2c
jne 0x553e8b
mov word [esi], 0x5f
add esi, 2
jmp 0x553e7c
mov esi, dword [ebp - 0x1c]
test esi, esi
je 0x553eb7
push esi
call fcn.0057e90a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x553eb7
cmp word [esi], 0x3b
jne 0x553eb2
mov word [esi], 0x5f
add esi, 2
jmp 0x553ea3
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0xb
call fcn.0059ad3d
mov edx, dword [ebp - 0x68]
push edx
jmp 0x554128
cmp ebx, esi
jae 0x553eea
push 0x2e
push ebx
call fcn.0057e940
add esp, 8
test eax, eax
je 0x553eea
lea ecx, [eax + 1]
cmp ecx, esi
jae 0x553eea
mov ebx, eax
jmp 0x553ecc
sub esi, ebx
lea edi, [esi + 1]
cmp edi, 1
jle 0x554089
push edi
call fcn.005970d9
mov edx, eax
mov ecx, edi
mov dword [ebp + 0x10], edx
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
add esp, 4
mov ecx, edx
and ecx, 3
push esi
mov esi, dword [ebp + 0x10]
push ebx
push esi
rep stosb byte es:[edi], al
call fcn.0057ee60
add esp, 0xc
xor ebx, ebx
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x64], ebx
push ebx
push esi
mov dword [ebp - 0x5c], ebx
mov word [ebp - 0x60], bx
call fcn.004028e0
mov eax, dword [ebp - 0x64]
mov byte [ebp - 4], 0xd
cmp eax, ebx
mov edi, eax
jne 0x553f4e
lea edi, [ebp - 0x60]
mov esi, dword [ebp - 0xa0]
cmp esi, ebx
jne 0x553f5e
lea esi, [ebp - 0x9c]
mov eax, 0x66dad0
test eax, eax
je 0x55406c
cmp esi, ebx
je 0x55406c
cmp edi, ebx
je 0x55406c
push ebx
push eax
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x44], ebx
mov word [ebp - 0x48], bx
call fcn.004028e0
push esi
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0xe
call fcn.00403bb0
push edi
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xf
call fcn.00403bb0
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x10
call fcn.00401070
mov esi, dword [ebp - 0x44]
lea ecx, [ebp - 0x40]
call fcn.00401fb0
push eax
call fcn.0057e90a
add esp, 4
lea ecx, [ebp - 0x94]
mov edi, eax
call fcn.00401fb0
push eax
call fcn.0057e90a
add esi, edi
lea esi, [eax + esi + 3]
lea edi, [esi + esi]
push edi
call fcn.005970d9
mov edx, eax
add esp, 8
cmp edx, ebx
mov dword [ebp - 0x1c], edx
je 0x554045
mov ecx, edi
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [ebp - 0x40]
call fcn.00401fb0
push eax
lea ecx, [ebp - 0x94]
call fcn.00401fb0
push eax
lea ecx, [ebp - 0x4c]
call fcn.00401fb0
push eax
mov eax, dword [ebp - 0x1c]
push esi
push eax
call fcn.0057e89a
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.0057e90a
add esp, 0x18
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xf
call fcn.00401070
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0xe
call fcn.00401070
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0xd
call fcn.00401070
mov edx, dword [ebp + 0x10]
push edx
call fcn.00597102
add esp, 4
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0xb
call fcn.00401070
jmp 0x554130
mov eax, dword [ebp - 0xa0]
lea ecx, [ebp - 0x1c]
push eax
call fcn.00401fc0
jmp 0x554130
mov ebx, dword [ebp - 0x7c]
test edi, edi
jne 0x554130
mov ecx, dword [ebp - 0x24]
xor eax, eax
mov edx, dword [ecx + 0x28]
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x554130
cmp esi, edx
jbe 0x554130
inc ebx
cmp ebx, esi
je 0x554130
mov edi, esi
sub edi, edx
inc edi
push edi
call fcn.005970d9
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x554130
mov ecx, edi
xor eax, eax
mov edx, ecx
mov edi, ebx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [ebp - 0x24]
mov eax, dword [eax + 0x28]
sub esi, eax
push esi
push eax
push ebx
call fcn.0057ee60
add esp, 0xc
lea ecx, [ebp - 0x1c]
push 0
push ebx
call fcn.004028e0
mov ecx, dword [ebp + 0x10]
push 0
push 1
push ecx
mov ecx, dword [ebp - 0x24]
lea edx, [ebp - 0x1c]
push edx
mov eax, dword [ecx + 0x168]
push eax
push ebx
call fcn.00553120
push ebx
call fcn.00597102
add esp, 4
mov ebx, dword [ebp - 0x24]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [ebx + 0x2e4]
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x5544e7
mov cl, byte [edx]
cmp cl, 0x2e
mov ecx, dword [ebp - 0x1c]
sete byte [ebp + 0x13]
xor edi, edi
push ecx
lea ecx, [ebp - 0x64]
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x5c], edi
mov word [ebp - 0x60], di
call fcn.00401fc0
mov eax, dword [ebp - 0x64]
mov byte [ebp - 4], 0x11
cmp eax, edi
jne 0x55417a
lea eax, [ebp - 0x60]
push 0x2e
push eax
call fcn.0057e85a
mov esi, eax
add esp, 8
cmp esi, edi
je 0x554328
mov al, byte [ebp + 0x13]
test al, al
jne 0x554199
add esi, 2
push esi
lea ecx, [ebp + 0x10]
call fcn.0059adfd
mov eax, dword [ebx + 0x2e4]
mov edx, dword [ebp + 0x10]
mov byte [ebp - 4], 0x12
mov ecx, dword [eax - 8]
inc ecx
push ecx
push eax
push edx
call fcn.00580b90
add esp, 0xc
test eax, eax
je 0x554317
mov word [esi], di
mov eax, dword [ebx + 0x2e4]
push edi
push eax
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x38], edi
mov word [ebp - 0x3c], di
call fcn.004028e0
mov eax, dword [ebp - 0x40]
mov byte [ebp - 4], 0x13
cmp eax, edi
mov ebx, eax
jne 0x5541f3
lea ebx, [ebp - 0x3c]
mov esi, dword [ebp - 0x64]
cmp esi, edi
jne 0x5541fd
lea esi, [ebp - 0x60]
mov eax, 0x64f030
test eax, eax
je 0x55430b
cmp esi, edi
je 0x55430b
cmp ebx, edi
je 0x55430b
push edi
push eax
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x44], edi
mov word [ebp - 0x48], di
call fcn.004028e0
push esi
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0x14
call fcn.00403bb0
push ebx
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0x15
call fcn.00403bb0
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x16
call fcn.00401070
mov esi, dword [ebp - 0x44]
lea ecx, [ebp - 0x94]
call fcn.00401fb0
push eax
call fcn.0057e90a
add esp, 4
lea ecx, [ebp - 0x78]
mov edi, eax
call fcn.00401fb0
push eax
call fcn.0057e90a
add esi, edi
lea esi, [eax + esi + 3]
lea edi, [esi + esi]
push edi
call fcn.005970d9
mov edx, eax
add esp, 8
test edx, edx
mov dword [ebp - 0x1c], edx
je 0x5542e4
mov ecx, edi
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [ebp - 0x94]
call fcn.00401fb0
push eax
lea ecx, [ebp - 0x78]
call fcn.00401fb0
push eax
lea ecx, [ebp - 0x4c]
call fcn.00401fb0
push eax
mov eax, dword [ebp - 0x1c]
push esi
push eax
call fcn.0057e89a
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.0057e90a
add esp, 0x18
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0x15
call fcn.00401070
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0x14
call fcn.00401070
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x13
call fcn.00401070
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x12
call fcn.00401070
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x11
call fcn.0059ad3d
jmp 0x5544db
mov eax, dword [ebx + 0x2e4]
push edi
push eax
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x44], edi
mov word [ebp - 0x48], di
call fcn.004028e0
mov al, byte [ebp + 0x13]
mov byte [ebp - 4], 0x17
test al, al
mov ebx, 0x679a2c
jne 0x554357
mov ebx, 0x66dacc
mov eax, dword [ebp - 0x4c]
cmp eax, edi
mov esi, eax
jne 0x554363
lea esi, [ebp - 0x48]
mov eax, dword [ebp - 0x64]
cmp eax, edi
jne 0x55436d
lea eax, [ebp - 0x60]
mov edx, 0x64f9d4
test edx, edx
je 0x5544cf
cmp eax, edi
je 0x5544cf
cmp ebx, edi
je 0x5544cf
cmp esi, edi
je 0x5544cf
push eax
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x38], edi
mov word [ebp - 0x3c], di
call fcn.00401fc0
push ebx
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 0x18
call fcn.00403bb0
push esi
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0x19
call fcn.00403bb0
mov bl, 0x1a
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.00401070
push 0x64f9d4
lea ecx, [ebp - 0x78]
call fcn.00401f30
mov esi, dword [ebp - 0x70]
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0x1b
call fcn.00401fb0
push eax
call fcn.0057e90a
add esp, 4
lea ecx, [ebp - 0xac]
mov edi, eax
call fcn.00401fb0
push eax
call fcn.0057e90a
mov dword [ebp + 0x10], edi
mov edi, eax
add esp, 4
lea ecx, [ebp - 0x40]
add edi, esi
call fcn.00401fb0
push eax
call fcn.0057e90a
mov ecx, dword [ebp + 0x10]
add edi, ecx
lea esi, [eax + edi + 4]
lea edi, [esi + esi]
push edi
call fcn.005970d9
mov edx, eax
add esp, 8
test edx, edx
mov dword [ebp - 0x1c], edx
je 0x55449a
mov ecx, edi
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [ebp - 0x94]
call fcn.00401fb0
push eax
lea ecx, [ebp - 0xac]
call fcn.00401fb0
push eax
lea ecx, [ebp - 0x40]
call fcn.00401fb0
push eax
lea ecx, [ebp - 0x78]
call fcn.00401fb0
push eax
mov eax, dword [ebp - 0x1c]
push esi
push eax
call fcn.0057e89a
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.0057e90a
add esp, 0x1c
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], bl
call fcn.00401070
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0x19
call fcn.00401070
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 0x18
call fcn.00401070
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x17
call fcn.00401070
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x11
call fcn.00401070
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 0xb
call fcn.00401070
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 3
call fcn.00401070
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
call fcn.0059ad3d
mov edi, dword [ebp - 0x24]
cmp dword [edi + 0x44], 4
jne 0x55461b
mov eax, dword [ebp - 0x1c]
xor ebx, ebx
cmp eax, ebx
jne 0x55451b
lea eax, [ebp - 0x18]
push 0x2e
push eax
call fcn.0057e85a
add esp, 8
cmp eax, ebx
je 0x554587
push 0x6525cc
push eax
call fcn.00580edc
add esp, 8
test eax, eax
je 0x55461d
mov edx, 0x6525cc
test edx, edx
je 0x55461d
push edx
call fcn.0057e90a
add esp, 4
test eax, eax
je 0x55461d
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
je 0x554572
push eax
call fcn.0057e90a
add esp, 4
mov esi, eax
jmp 0x554574
xor esi, esi
push 0x6525cc
call fcn.0057e90a
add eax, esi
lea eax, [eax + eax + 2]
push eax
jmp 0x5545c8
mov ecx, 0x6525cc
test ecx, ecx
je 0x55461d
push ecx
call fcn.0057e90a
add esp, 4
test eax, eax
je 0x55461d
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
je 0x5545b5
push eax
call fcn.0057e90a
add esp, 4
mov esi, eax
jmp 0x5545b7
xor esi, esi
push 0x6525cc
call fcn.0057e90a
add eax, esi
lea edx, [eax + eax + 2]
push edx
call fcn.005970d9
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x55461d
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
je 0x5545f4
push eax
push esi
call fcn.0057eaaa
push 0x6525cc
push esi
call fcn.0057ea80
add esp, 0x10
jmp 0x554602
push 0x6525cc
push esi
call fcn.0057eaaa
add esp, 8
lea ecx, [ebp - 0x1c]
call fcn.00401070
push esi
mov dword [ebp - 0x1c], esi
call fcn.0057e90a
add esp, 4
mov dword [ebp - 0x14], eax
jmp 0x55461d
xor ebx, ebx
mov dword [ebp - 0x88], ebx
mov dword [ebp - 0x80], ebx
mov word [ebp - 0x84], bx
mov esi, dword [ebp + 8]
mov byte [ebp - 4], 0x1c
cmp esi, ebx
je 0x5546b4
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
jne 0x554642
lea eax, [ebp - 0x18]
push 0x2e
push eax
call fcn.0057e85a
mov ecx, dword [0x6754d4]
add esp, 8
mov dword [ebp + 0x10], ecx
cmp eax, ebx
mov byte [ebp - 4], 0x1d
je 0x55466a
add eax, 2
lea ecx, [ebp + 0x10]
push eax
call fcn.0059aeed
mov ecx, dword [ebp + 0x10]
lea edx, [ebp - 0xb0]
lea eax, [ebp - 0x88]
push edx
push eax
push ecx
mov ecx, esi
call fcn.004845e0
test al, al
jne 0x554698
lea edx, [ebp - 0x88]
push edx
call fcn.00435ba0
add esp, 4
jmp 0x5546a6
mov eax, dword [ebp - 0xb0]
mov ecx, edi
push eax
call fcn.0054a5f0
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 0x1c
call fcn.0059ad3d
jmp 0x5546c3
lea ecx, [ebp - 0x88]
push ecx
call fcn.00435ba0
add esp, 4
mov eax, dword [ebp - 0x88]
cmp eax, ebx
jne 0x5546d3
lea eax, [ebp - 0x84]
push eax
call fcn.0057e90a
mov ebx, eax
mov esi, 0x103
sub esi, ebx
add esp, 4
cmp esi, 0x100
jbe 0x5546f2
mov esi, 0x100
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x5546fc
lea eax, [ebp - 0x18]
push eax
call fcn.0057e90a
add esp, 4
cmp eax, esi
jbe 0x554759
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x554714
mov edi, eax
jmp 0x55471a
lea edi, [ebp - 0x18]
lea eax, [ebp - 0x18]
push eax
call fcn.0057e90a
sub eax, esi
add esp, 4
xor ecx, ecx
lea eax, [edi + eax*2]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x38], ecx
mov word [ebp - 0x3c], cx
push eax
lea ecx, [ebp - 0x40]
call fcn.00401fc0
mov edx, dword [ebp - 0x40]
lea ecx, [ebp - 0x1c]
push edx
mov byte [ebp - 4], 0x1e
call fcn.00401fc0
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x1c
call fcn.00401070
mov ecx, dword [ebp - 0x88]
test ecx, ecx
mov eax, ecx
jne 0x55476b
lea eax, [ebp - 0x84]
cmp word [eax + ebx*2 - 2], 0x5c
mov edi, 0x679a2c
je 0x55477d
mov edi, 0x64f038
mov eax, dword [ebp - 0x1c]
xor ebx, ebx
cmp eax, ebx
mov esi, eax
jne 0x55478b
lea esi, [ebp - 0x18]
cmp ecx, ebx
mov eax, ecx
jne 0x554797
lea eax, [ebp - 0x84]
mov ecx, 0x64f9d4
test ecx, ecx
je 0x5548f5
cmp eax, ebx
je 0x5548f5
cmp edi, ebx
je 0x5548f5
cmp esi, ebx
je 0x5548f5
push eax
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x44], ebx
mov word [ebp - 0x48], bx
call fcn.00401fc0
push edi
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x1f
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x38], ebx
mov word [ebp - 0x3c], bx
call fcn.00401fc0
push esi
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0x20
call fcn.00403bb0
mov esi, dword [ebp + 0xc]
mov byte [ebp - 4], 0x21
mov ecx, esi
call fcn.00401070
push 0x64f9d4
lea ecx, [ebp - 0xac]
call fcn.00401f30
mov edi, dword [ebp - 0xa4]
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0x22
call fcn.00401fb0
push eax
call fcn.0057e90a
add esp, 4
lea ecx, [ebp - 0x40]
mov ebx, eax
call fcn.00401fb0
push eax
call fcn.0057e90a
mov dword [ebp + 0x10], ebx
mov ebx, eax
add esp, 4
lea ecx, [ebp - 0x4c]
add ebx, edi
call fcn.00401fb0
push eax
call fcn.0057e90a
mov edx, dword [ebp + 0x10]
add ebx, edx
lea ebx, [eax + ebx + 4]
lea eax, [ebx + ebx]
push eax
call fcn.005970d9
mov edi, eax
add esp, 8
test edi, edi
mov dword [esi], edi
je 0x5548c2
lea ecx, [ebx + ebx]
xor eax, eax
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea ecx, [ebp - 0x78]
call fcn.00401fb0
push eax
lea ecx, [ebp - 0x40]
call fcn.00401fb0
push eax
lea ecx, [ebp - 0x4c]
call fcn.00401fb0
push eax
lea ecx, [ebp - 0xac]
call fcn.00401fb0
push eax
mov eax, dword [esi]
push ebx
push eax
call fcn.0057e89a
mov ecx, dword [esi]
push ecx
call fcn.0057e90a
add esp, 0x1c
mov dword [esi + 8], eax
lea ecx, [ebp - 0xac]
mov byte [ebp - 4], 0x21
call fcn.00401070
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0x20
call fcn.00401070
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x1f
call fcn.00401070
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0x1c
call fcn.00401070
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 2
call fcn.00401070
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 1
call fcn.00401070
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0
call fcn.00401070
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc