Function at 0x4c6e80
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x586af6
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x90
push ebx
mov ebx, dword [esp + 0xa8]
push ebp
push esi
push edi
mov edi, ecx
test ebx, ebx
mov dword [esp + 0x64], edi
je 0x4c6eb5
lea eax, [ebx + 4]
jmp 0x4c6eb7
xor eax, eax
mov esi, dword [edi + 8]
push eax
lea ecx, [esp + 0x28]
call fcn.00401ed0
mov ebp, 0x596bf8
mov dword [esp + 0x28], esi
mov dword [esp + 0x20], ebp
xor esi, esi
lea ecx, [esp + 0x20]
mov dword [esp + 0xa8], esi
call fcn.00414a80
lea ecx, [esp + 0x24]
call fcn.004133e0
mov eax, dword [edi + 8]
mov byte [edi + 0x41], 0
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], ebp
mov dword [esp + 0x1c], eax
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], ebp
mov dword [esp + 0x3c], eax
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], ebp
mov dword [esp + 0x48], eax
mov ecx, dword [ebx + 4]
lea esi, [ebx + 4]
test ecx, ecx
mov byte [esp + 0xa8], 3
mov byte [esp + 0x13], 0
mov byte [esp + 0x33], 0
mov byte [esp + 0x86], 0
je 0x4c6f47
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x4c6f47
lea ebp, [ecx - 1]
jmp 0x4c6f49
xor ebp, ebp
dec ebp
cmp ebp, 3
mov dword [esp + 0x74], ebp
jb case.0x4c820a.78
mov edi, dword [esp + 0xb0]
cmp eax, 0x3eb
jne 0x4c71e1
lea eax, [esp + 0x20]
cmp ebx, eax
je 0x4c6f9b
mov eax, dword [esi]
test eax, eax
je 0x4c6f7f
push eax
mov ecx, esi
call fcn.00411610
mov eax, dword [esp + 0x24]
test eax, eax
mov dword [esi], eax
je 0x4c6f92
mov ecx, dword [eax]
inc ecx
mov dword [eax], ecx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [ebx + 8], ecx
jmp 0x4c6f9f
mov eax, dword [esp + 0x24]
mov ecx, dword [0x5d1428]
test ecx, ecx
je 0x4c71e5
mov esi, 0x5d1428
mov dword [esp + 0x2c], esi
mov edx, dword [esi]
lea ecx, [esp + 0x68]
push edx
call fcn.00411a30
lea eax, [esp + 0x68]
lea ecx, [esp + 0x44]
push eax
mov byte [esp + 0xac], 4
call fcn.00404a90
mov eax, dword [esp + 0x68]
xor ebx, ebx
cmp eax, ebx
mov byte [esp + 0xa8], 3
je 0x4c6ff4
push eax
lea ecx, [esp + 0x6c]
call fcn.00411610
mov ecx, dword [esi + 4]
mov dword [esp + 0x68], ebx
push ecx
lea ecx, [esp + 0x60]
call fcn.00411a30
mov eax, dword [esp + 0xb8]
lea edx, [esp + 0x5c]
push edx
mov byte [esp + 0xac], 5
lea ecx, [eax + 4]
call fcn.00404a90
mov eax, dword [esp + 0x5c]
mov byte [esp + 0xa8], 3
cmp eax, ebx
je 0x4c703b
push eax
lea ecx, [esp + 0x60]
call fcn.00411610
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x5c], ebx
lea eax, [ecx + 4]
mov eax, dword [ecx + 4]
cmp eax, ebx
je 0x4c705c
mov eax, dword [eax + 8]
cmp eax, ebx
je 0x4c705c
lea esi, [eax - 1]
jmp 0x4c705e
xor esi, esi
mov eax, dword [esp + 0x44]
cmp eax, ebx
je 0x4c7070
mov eax, dword [eax + 8]
cmp eax, ebx
je 0x4c7070
lea ebx, [eax - 1]
cmp esi, ebx
jbe 0x4c7186
mov ecx, dword [esp + 0xb4]
sub esi, ebx
push esi
lea edx, [esp + 0x7c]
push 0
push edx
call fcn.00414940
mov ebp, eax
lea eax, [esp + 0x14]
mov byte [esp + 0xa8], 6
cmp eax, ebp
je 0x4c70c6
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4c70b2
push eax
lea ecx, [esp + 0x1c]
call fcn.00411610
mov eax, dword [ebp + 4]
test eax, eax
mov dword [esp + 0x18], eax
je 0x4c70bf
inc dword [eax]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x78]
lea edx, [esp + 0x7c]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 3
and ecx, edx
call fcn.0042bdc0
push ebx
mov ebx, dword [esp + 0xb8]
lea eax, [esp + 0x50]
push esi
push eax
mov ecx, ebx
call fcn.00414940
mov esi, eax
lea ecx, [esp + 0x34]
mov byte [esp + 0xa8], 7
cmp ecx, esi
je 0x4c712e
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4c711a
push eax
lea ecx, [esp + 0x3c]
call fcn.00411610
mov eax, dword [esi + 4]
test eax, eax
mov dword [esp + 0x38], eax
je 0x4c7127
inc dword [eax]
mov edx, dword [esi + 8]
mov dword [esp + 0x3c], edx
lea ecx, [esp + 0x4c]
lea eax, [esp + 0x50]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 3
and ecx, eax
call fcn.0042bdc0
lea eax, [esp + 0x40]
lea ecx, [esp + 0x44]
neg eax
sbb eax, eax
push 0
and eax, ecx
lea ecx, [esp + 0x3c]
push eax
call fcn.004124b0
cmp eax, 3
jne 0x4c7186
mov esi, dword [esp + 0x64]
lea edx, [esp + 0x14]
push edi
push edx
mov ecx, esi
call fcn.0043f780
test al, al
jne 0x4c71ab
cmp dword [esi], 0
jne 0x4c7dc5
mov esi, dword [esp + 0x2c]
add esi, 0x10
mov dword [esp + 0x2c], esi
cmp dword [esi], 0
jne 0x4c6fb6
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x74]
mov ebx, dword [esp + 0xb4]
jmp 0x4c71e5
lea eax, [esp + 0x14]
cmp ebx, eax
je 0x4ca0fd
mov eax, dword [ebx + 4]
lea esi, [ebx + 4]
test eax, eax
je 0x4c71c9
push eax
mov ecx, esi
call fcn.00411610
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [esi], eax
je 0x4c71d5
inc dword [eax]
mov ecx, dword [esp + 0x1c]
mov dword [ebx + 8], ecx
jmp 0x4ca0fd
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x64]
cmp dword [ecx + 8], 0x3ec
jne 0x4c7c39
lea edx, [esp + 0x20]
cmp ebx, edx
je 0x4c722a
mov ecx, dword [ebx + 4]
lea esi, [ebx + 4]
test ecx, ecx
je 0x4c7214
push ecx
mov ecx, esi
call fcn.00411610
mov eax, dword [esp + 0x24]
test eax, eax
mov dword [esi], eax
je 0x4c7223
mov ecx, dword [eax]
inc ecx
mov dword [eax], ecx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov dword [ebx + 8], ecx
mov ecx, dword [str.GLIELA]
mov dword [esp + 0x9c], 0
test ecx, ecx
je 0x4c7c39
mov esi, 0x5d1158
mov edx, dword [esi]
lea ecx, [esp + 0x5c]
push edx
call fcn.00411a30
lea eax, [esp + 0x5c]
lea ecx, [esp + 0x44]
push eax
mov byte [esp + 0xac], 8
call fcn.00404a90
mov eax, dword [esp + 0x5c]
xor ebx, ebx
cmp eax, ebx
mov byte [esp + 0xa8], 3
je 0x4c7286
push eax
lea ecx, [esp + 0x60]
call fcn.00411610
mov ecx, dword [esi + 4]
mov dword [esp + 0x5c], ebx
push ecx
lea ecx, [esp + 0x6c]
call fcn.00411a30
mov eax, dword [esp + 0xb8]
lea edx, [esp + 0x68]
push edx
mov byte [esp + 0xac], 9
lea ecx, [eax + 4]
call fcn.00404a90
mov eax, dword [esp + 0x68]
mov byte [esp + 0xa8], 3
cmp eax, ebx
je 0x4c72cd
push eax
lea ecx, [esp + 0x6c]
call fcn.00411610
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x68], ebx
lea eax, [ecx + 4]
mov eax, dword [ecx + 4]
cmp eax, ebx
je 0x4c72ee
mov eax, dword [eax + 8]
cmp eax, ebx
je 0x4c72ee
lea esi, [eax - 1]
jmp 0x4c72f0
xor esi, esi
mov eax, dword [esp + 0x44]
cmp eax, ebx
je 0x4c7302
mov eax, dword [eax + 8]
cmp eax, ebx
je 0x4c7302
lea ebx, [eax - 1]
lea edx, [ebx + 1]
cmp esi, edx
jbe 0x4c7c04
mov ecx, dword [esp + 0xb4]
sub esi, ebx
push esi
lea eax, [esp + 0x7c]
push 0
push eax
call fcn.00414940
mov ebp, eax
lea ecx, [esp + 0x14]
mov byte [esp + 0xa8], 0xa
cmp ecx, ebp
je 0x4c735b
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4c7347
push eax
lea ecx, [esp + 0x1c]
call fcn.00411610
mov eax, dword [ebp + 4]
test eax, eax
mov dword [esp + 0x18], eax
je 0x4c7354
inc dword [eax]
mov edx, dword [ebp + 8]
mov dword [esp + 0x1c], edx
lea ecx, [esp + 0x78]
lea eax, [esp + 0x7c]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 3
and ecx, eax
call fcn.0042bdc0
push ebx
lea ecx, [esp + 0x50]
push esi
push ecx
mov ecx, dword [esp + 0xc0]
call fcn.00414940
mov esi, eax
lea edx, [esp + 0x34]
mov byte [esp + 0xa8], 0xb
cmp edx, esi
je 0x4c73c1
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4c73ad
push eax
lea ecx, [esp + 0x3c]
call fcn.00411610
mov eax, dword [esi + 4]
test eax, eax
mov dword [esp + 0x38], eax
je 0x4c73ba
inc dword [eax]
mov eax, dword [esi + 8]
mov dword [esp + 0x3c], eax
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x50]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 3
and ecx, edx
call fcn.0042bdc0
lea eax, [esp + 0x40]
lea ecx, [esp + 0x44]
neg eax
sbb eax, eax
push 0
and eax, ecx
lea ecx, [esp + 0x3c]
push eax
call fcn.004124b0
cmp eax, 3
jne 0x4c7c04
mov ebx, dword [esp + 0x64]
lea edx, [esp + 0x14]
push edi
push edx
mov ecx, ebx
call fcn.0043f780
test al, al
je 0x4c7459
mov ebp, dword [esp + 0xb8]
sub esp, 0xc
mov eax, ebp
mov esi, esp
neg eax
sbb eax, eax
lea ecx, [ebp + 4]
and eax, ecx
mov dword [esp + 0xa4], esp
push eax
lea ecx, [esi + 4]
call fcn.00401ed0
mov dword [esi], fcn.00414a80
mov eax, dword [ebp + 8]
push edi
mov ecx, ebx
mov dword [esi + 8], eax
call fcn.004c6ca0
test al, al
jne 0x4c7ccb
jmp 0x4c7460
mov ebp, dword [esp + 0xb8]
cmp dword [ebx], 0
jne case.0x4c820a.78
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4c747b
mov eax, dword [ecx + 8]
test eax, eax
je 0x4c747b
dec eax
jmp 0x4c747d
xor eax, eax
cmp eax, 2
seta byte [esp + 0x5b]
xor esi, esi
test ecx, ecx
je 0x4c74cc
lea ecx, [esp + 0x18]
call fcn.00404a70
test eax, eax
je 0x4c74c8
lea ecx, [esp + 0x18]
call fcn.00404a70
test eax, eax
ja 0x4c74b1
lea ecx, [esp + 0x18]
call fcn.00404a70
mov esi, eax
dec esi
lea ecx, [esp + 0x18]
call fcn.00404a70
mov ecx, dword [esp + 0x18]
mov edx, ecx
sub edx, esi
mov al, byte [eax + edx + 0xb]
jmp 0x4c74ce
mov ecx, dword [esp + 0x18]
xor al, al
cmp al, 0x52
mov esi, 1
sete byte [esp + 0x87]
test ecx, ecx
je 0x4c7520
lea ecx, [esp + 0x18]
call fcn.00404a70
test eax, eax
je 0x4c7520
lea ecx, [esp + 0x18]
call fcn.00404a70
cmp eax, esi
ja 0x4c7507
lea ecx, [esp + 0x18]
call fcn.00404a70
mov esi, eax
dec esi
lea ecx, [esp + 0x18]
call fcn.00404a70
mov ecx, dword [esp + 0x18]
sub ecx, esi
mov dl, byte [eax + ecx + 0xb]
mov byte [esp + 0x6c], dl
jmp 0x4c7525
mov byte [esp + 0x6c], 0
push 0x5d26e0
lea ecx, [esp + 0x30]
call fcn.00411a30
mov ecx, dword [esp + 0x6c]
push 0
push 0
push ecx
mov ecx, eax
mov byte [esp + 0xb4], 0xc
call fcn.004128a0
mov byte [esp + 0x85], al
mov eax, dword [esp + 0x2c]
test eax, eax
mov byte [esp + 0xa8], 3
je 0x4c756c
push eax
lea ecx, [esp + 0x30]
call fcn.00411610
mov al, byte [esp + 0x5b]
mov dword [esp + 0x2c], 0
test al, al
je 0x4c7671
mov al, byte [esp + 0x87]
test al, al
je 0x4c7671
mov al, byte [esp + 0x85]
test al, al
je 0x4c7671
push 0x45
lea ecx, [esp + 0x1c]
call fcn.004122c0
lea eax, [esp + 0x14]
lea edx, [esp + 0x18]
neg eax
sbb eax, eax
mov ecx, ebx
and eax, edx
push eax
call fcn.00443010
test al, al
je 0x4c7610
lea eax, [esp + 0x14]
push edi
push eax
mov ecx, ebx
call fcn.0043f780
test al, al
je 0x4c7610
mov eax, ebp
sub esp, 0xc
neg eax
sbb eax, eax
lea ecx, [ebp + 4]
mov esi, esp
and eax, ecx
mov dword [esp + 0xa4], esp
push eax
lea ecx, [esi + 4]
call fcn.00401ed0
mov dword [esi], fcn.00414a80
mov ecx, dword [ebp + 8]
mov dword [esi + 8], ecx
push edi
mov ecx, ebx
call fcn.004c6ca0
test al, al
jne 0x4c7d88
lea ecx, [esp + 0x18]
mov esi, 1
call fcn.00404a70
cmp eax, esi
jae 0x4c762d
lea ecx, [esp + 0x18]
call fcn.00404a70
mov esi, eax
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4c7671
lea ecx, [esp + 0x18]
call fcn.00404a70
test eax, eax
je 0x4c7671
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x18]
mov eax, dword [edx + 4]
push eax
call fcn.004119f0
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
sub ecx, esi
mov dword [eax + 8], ecx
lea ecx, [esp + 0x18]
call fcn.00404a70
mov ecx, dword [esp + 0x18]
mov byte [eax + ecx + 0xc], 0
cmp dword [ebx], 0
jne 0x4c7dc5
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4c77ef
mov eax, dword [eax + 8]
test eax, eax
je 0x4c77ef
dec eax
cmp eax, 3
jbe 0x4c77ef
lea ecx, [esp + 0x18]
xor esi, esi
call fcn.00404a70
test eax, eax
je 0x4c77ef
lea ecx, [esp + 0x18]
call fcn.00404a70
test eax, eax
ja 0x4c76c7
lea ecx, [esp + 0x18]
call fcn.00404a70
mov esi, eax
dec esi
lea ecx, [esp + 0x18]
call fcn.00404a70
mov edx, dword [esp + 0x18]
sub edx, esi
cmp byte [eax + edx + 0xb], 0x52
jne 0x4c77ef
push 0x5cac4c
lea ecx, [esp + 0x64]
call fcn.00411a30
lea eax, [esp + 0x60]
lea ecx, [esp + 0x18]
push eax
mov byte [esp + 0xac], 0xd
call fcn.00412320
mov eax, dword [esp + 0x60]
mov byte [esp + 0xa8], 3
test eax, eax
je 0x4c771f
push eax
lea ecx, [esp + 0x64]
call fcn.00411610
lea eax, [esp + 0x14]
lea ecx, [esp + 0x18]
neg eax
sbb eax, eax
mov dword [esp + 0x60], 0
and eax, ecx
mov ecx, ebx
push eax
call fcn.00443010
test al, al
je 0x4c778e
lea edx, [esp + 0x14]
push edi
push edx
mov ecx, ebx
call fcn.0043f780
test al, al
je 0x4c778e
mov eax, ebp
sub esp, 0xc
neg eax
sbb eax, eax
lea ecx, [ebp + 4]
mov esi, esp
and eax, ecx
mov dword [esp + 0xa4], esp
push eax
lea ecx, [esi + 4]
call fcn.00401ed0
mov dword [esi], fcn.00414a80
mov eax, dword [ebp + 8]
push edi
mov ecx, ebx
mov dword [esi + 8], eax
call fcn.004c6ca0
test al, al
jne 0x4c7e39
lea ecx, [esp + 0x18]
mov esi, 2
call fcn.00404a70
cmp eax, esi
jae 0x4c77ab
lea ecx, [esp + 0x18]
call fcn.00404a70
mov esi, eax
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4c77ef
lea ecx, [esp + 0x18]
call fcn.00404a70
test eax, eax
je 0x4c77ef
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 4]
lea ecx, [esp + 0x18]
push edx
call fcn.004119f0
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
sub ecx, esi
mov dword [eax + 8], ecx
lea ecx, [esp + 0x18]
call fcn.00404a70
mov ecx, dword [esp + 0x18]
mov byte [eax + ecx + 0xc], 0
cmp dword [ebx], 0
jne case.0x4c820a.78
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4c7914
mov eax, dword [eax + 8]
test eax, eax
je 0x4c7914
dec eax
cmp eax, 1
jbe 0x4c7914
lea ecx, [esp + 0x18]
xor esi, esi
call fcn.00404a70
test eax, eax
je 0x4c785b
lea ecx, [esp + 0x18]
call fcn.00404a70
test eax, eax
ja 0x4c7841
lea ecx, [esp + 0x18]
call fcn.00404a70
mov esi, eax
dec esi
lea ecx, [esp + 0x18]
call fcn.00404a70
mov edx, dword [esp + 0x18]
sub edx, esi
cmp byte [eax + edx + 0xb], 0x52
je 0x4c7914
push 0x27
lea ecx, [esp + 0x1c]
call fcn.004122c0
lea eax, [esp + 0x14]
push edi
push eax
mov ecx, ebx
call fcn.0043f780
test al, al
je 0x4c78b3
mov eax, ebp
sub esp, 0xc
neg eax
sbb eax, eax
lea ecx, [ebp + 4]
mov esi, esp
and eax, ecx
mov dword [esp + 0xa4], esp
push eax
lea ecx, [esi + 4]
call fcn.00401ed0
mov dword [esi], fcn.00414a80
mov ecx, dword [ebp + 8]
mov dword [esi + 8], ecx
push edi
mov ecx, ebx
call fcn.004c6ca0
test al, al
jne 0x4c7ee3
lea ecx, [esp + 0x18]
mov esi, 1
call fcn.00404a70
cmp eax, esi
jae 0x4c78d0
lea ecx, [esp + 0x18]
call fcn.00404a70
mov esi, eax
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4c7914
lea ecx, [esp + 0x18]
call fcn.00404a70
test eax, eax
je 0x4c7914
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x18]
mov eax, dword [edx + 4]
push eax
call fcn.004119f0
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
sub ecx, esi
mov dword [eax + 8], ecx
lea ecx, [esp + 0x18]
call fcn.00404a70
mov ecx, dword [esp + 0x18]
mov byte [eax + ecx + 0xc], 0
cmp dword [ebx], 0
jne case.0x4c820a.78
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4c7c04
mov eax, dword [eax + 8]
test eax, eax
je 0x4c7c04
lea ecx, [eax - 1]
cmp ecx, 6
jae 0x4c7c04
test eax, eax
je 0x4c7c04
dec eax
cmp eax, 2
jb 0x4c7c04
lea ecx, [esp + 0x18]
xor esi, esi
call fcn.00404a70
test eax, eax
je 0x4c7993
lea ecx, [esp + 0x18]
call fcn.00404a70
test eax, eax
ja 0x4c797a
lea ecx, [esp + 0x18]
call fcn.00404a70
mov esi, eax
dec esi
lea ecx, [esp + 0x18]
call fcn.00404a70
mov edx, dword [esp + 0x18]
sub edx, esi
mov al, byte [eax + edx + 0xb]
mov byte [esp + 0x5b], al
jmp 0x4c7998
mov byte [esp + 0x5b], 0
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x4c79a4
xor al, al
jmp 0x4c79bc
lea ecx, [esp + 0x38]
call fcn.00404a70
test eax, eax
ja 0x4c79b5
xor al, al
jmp 0x4c79bc
mov ecx, dword [esp + 0x38]
mov al, byte [ecx + 0xc]
cmp byte [esp + 0x5b], al
jne 0x4c7c04
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4c7c04
lea ecx, [esp + 0x38]
call fcn.00404a70
test eax, eax
mov eax, dword [esp + 0x38]
jbe 0x4c79e9
cmp byte [eax + 0xc], 0x4c
je 0x4c7a2f
test eax, eax
je 0x4c7c04
lea ecx, [esp + 0x38]
call fcn.00404a70
test eax, eax
mov eax, dword [esp + 0x38]
jbe 0x4c7a08
cmp byte [eax + 0xc], 0x4d
je 0x4c7a2f
test eax, eax
je 0x4c7c04
lea ecx, [esp + 0x38]
call fcn.00404a70
test eax, eax
jbe 0x4c7c04
mov edx, dword [esp + 0x38]
cmp byte [edx + 0xc], 0x43
jne 0x4c7c04
mov eax, dword [esp + 0x18]
xor esi, esi
test eax, eax
je 0x4c7a78
lea ecx, [esp + 0x18]
call fcn.00404a70
test eax, eax
je 0x4c7a78
lea ecx, [esp + 0x18]
call fcn.00404a70
test eax, eax
ja 0x4c7a5f
lea ecx, [esp + 0x18]
call fcn.00404a70
mov esi, eax
dec esi
lea ecx, [esp + 0x18]
call fcn.00404a70
mov ecx, dword [esp + 0x18]
sub ecx, esi
mov dl, byte [eax + ecx + 0xb]
mov byte [esp + 0x70], dl
jmp 0x4c7a7d
mov byte [esp + 0x70], 0
lea ecx, [esp + 0x18]
mov esi, 1
call fcn.00404a70
cmp eax, esi
jae 0x4c7a9a
lea ecx, [esp + 0x18]
call fcn.00404a70
mov esi, eax
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4c7ade
lea ecx, [esp + 0x18]
call fcn.00404a70
test eax, eax
je 0x4c7ade
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 4]
push ecx
lea ecx, [esp + 0x1c]
call fcn.004119f0
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
sub ecx, esi
mov dword [eax + 8], ecx
lea ecx, [esp + 0x18]
call fcn.00404a70
mov edx, dword [esp + 0x18]
mov byte [eax + edx + 0xc], 0
lea eax, [esp + 0x14]
push edi
push eax
mov ecx, ebx
call fcn.0043f780
test al, al
je 0x4c7b2b
mov eax, ebp
sub esp, 0xc
neg eax
sbb eax, eax
lea ecx, [ebp + 4]
mov esi, esp
and eax, ecx
mov dword [esp + 0xa4], esp
push eax
lea ecx, [esi + 4]
call fcn.00401ed0
mov dword [esi], fcn.00414a80
mov ecx, dword [ebp + 8]
mov dword [esi + 8], ecx
push edi
mov ecx, ebx
call fcn.004c6ca0
test al, al
jne 0x4c7fa0
cmp dword [ebx], 0
jne case.0x4c820a.78
push 0x27
lea ecx, [esp + 0x1c]
call fcn.004122c0
lea edx, [esp + 0x14]
push edi
push edx
mov ecx, ebx
call fcn.0043f780
test al, al
je 0x4c7b8c
mov eax, ebp
sub esp, 0xc
neg eax
sbb eax, eax
lea ecx, [ebp + 4]
mov esi, esp
and eax, ecx
mov dword [esp + 0xa4], esp
push eax
lea ecx, [esi + 4]
call fcn.00401ed0
mov dword [esi], fcn.00414a80
mov eax, dword [ebp + 8]
push edi
mov ecx, ebx
mov dword [esi + 8], eax
call fcn.004c6ca0
test al, al
jne 0x4c805d
cmp dword [ebx], 0
jne case.0x4c820a.78
lea ecx, [esp + 0x18]
mov esi, 1
call fcn.00404a70
cmp eax, esi
jae 0x4c7bb2
lea ecx, [esp + 0x18]
call fcn.00404a70
mov esi, eax
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4c7bf6
lea ecx, [esp + 0x18]
call fcn.00404a70
test eax, eax
je 0x4c7bf6
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 4]
lea ecx, [esp + 0x18]
push edx
call fcn.004119f0
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
sub ecx, esi
mov dword [eax + 8], ecx
lea ecx, [esp + 0x18]
call fcn.00404a70
mov ecx, dword [esp + 0x18]
mov byte [eax + ecx + 0xc], 0
mov edx, dword [esp + 0x70]
lea ecx, [esp + 0x18]
push edx
call fcn.004122c0
mov eax, dword [esp + 0x9c]
inc eax
mov dword [esp + 0x9c], eax
shl eax, 4
lea esi, [eax + 0x5d1158]
mov eax, dword [eax + 0x5d1158]
test eax, eax
jne 0x4c7248
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x74]
mov ebx, dword [esp + 0xb4]
mov ecx, dword [esp + 0x64]
cmp dword [ecx + 8], 0x3e9
jne 0x4c87a0
lea edx, [esp + 0x20]
cmp ebx, edx
je 0x4c7c77
mov ecx, dword [ebx + 4]
lea esi, [ebx + 4]
test ecx, ecx
je 0x4c7c68
push ecx
mov ecx, esi
call fcn.00411610
mov eax, dword [esp + 0x24]
test eax, eax
mov dword [esi], eax
je 0x4c7c70
inc dword [eax]
mov eax, dword [esp + 0x28]
mov dword [ebx + 8], eax
mov eax, dword [ebx + 4]
lea esi, [ebx + 4]
test eax, eax
je case.0x4c820a.78
mov ecx, esi
call fcn.00404a70
cmp ebp, eax
jae 0x4c7c9f
mov ecx, dword [esi]
cmp byte [ecx + ebp + 0xc], 0x53
jne 0x4c7c9f
dec ebp
mov byte [esp + 0x13], 1
cmp dword [esi], 0
je case.0x4c820a.78
mov ecx, esi
call fcn.00404a70
cmp ebp, eax
jae 0x4c811a
mov edx, dword [esi]
cmp byte [edx + ebp + 0xc], 0x4f
jne 0x4c811a
mov al, 1
jmp 0x4c8143
mov ebx, dword [ebx + 0x20]
test ebx, ebx
je 0x4c7cde
mov eax, dword [ebx]
push 0x11
push 3
push edi
mov ecx, ebx
call dword [eax + 0x14]
mov edi, dword [esp + 0xb4]
lea ecx, [esp + 0x14]
cmp edi, ecx
je 0x4c7d12
mov eax, dword [edi + 4]
lea esi, [edi + 4]
test eax, eax
je 0x4c7cff
push eax
mov ecx, esi
call fcn.00411610
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [esi], eax
je 0x4c7d0b
inc dword [eax]
mov edx, dword [esp + 0x1c]
mov dword [edi + 8], edx
lea ecx, [esp + 0x40]
lea eax, [esp + 0x44]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 2
and ecx, eax
call fcn.0042bdc0
lea ecx, [esp + 0x34]
lea edx, [esp + 0x38]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 1
and ecx, edx
call fcn.0042bdc0
lea ecx, [esp + 0x14]
lea eax, [esp + 0x18]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 0
and ecx, eax
call fcn.0042bdc0
lea ecx, [esp + 0x20]
lea edx, [esp + 0x24]
neg ecx
sbb ecx, ecx
mov dword [esp + 0xa8], 0xffffffff
and ecx, edx
call fcn.0042bdc0
mov al, 1
jmp 0x4ca1f3
mov edi, dword [esp + 0xb4]
lea eax, [esp + 0x14]
cmp edi, eax
je 0x4ca0fd
mov eax, dword [edi + 4]
lea esi, [edi + 4]
test eax, eax
je 0x4c7dad
push eax
mov ecx, esi
call fcn.00411610
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [esi], eax
je 0x4c7db9
inc dword [eax]
mov ecx, dword [esp + 0x1c]
mov dword [edi + 8], ecx
jmp 0x4ca0fd
lea ecx, [esp + 0x40]
lea edx, [esp + 0x44]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 2
and ecx, edx
call fcn.0042bdc0
lea ecx, [esp + 0x34]
lea eax, [esp + 0x38]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 1
and ecx, eax
call fcn.0042bdc0
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 0
and ecx, edx
call fcn.0042bdc0
lea ecx, [esp + 0x20]
lea eax, [esp + 0x24]
neg ecx
sbb ecx, ecx
mov dword [esp + 0xa8], 0xffffffff
and ecx, eax
call fcn.0042bdc0
jmp 0x4ca1f1
mov edi, dword [esp + 0xb4]
lea ecx, [esp + 0x14]
cmp edi, ecx
je 0x4c7e6d
mov eax, dword [edi + 4]
lea esi, [edi + 4]
test eax, eax
je 0x4c7e5a
push eax
mov ecx, esi
call fcn.00411610
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [esi], eax
je 0x4c7e66
inc dword [eax]
mov edx, dword [esp + 0x1c]
mov dword [edi + 8], edx
lea ecx, [esp + 0x40]
lea eax, [esp + 0x44]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 2
and ecx, eax
call fcn.0042bdc0
lea ecx, [esp + 0x34]
lea edx, [esp + 0x38]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 1
and ecx, edx
call fcn.0042bdc0
lea ecx, [esp + 0x14]
lea eax, [esp + 0x18]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 0
and ecx, eax
call fcn.0042bdc0
lea ecx, [esp + 0x20]
lea edx, [esp + 0x24]
neg ecx
sbb ecx, ecx
mov dword [esp + 0xa8], 0xffffffff
and ecx, edx
call fcn.0042bdc0
mov al, 1
jmp 0x4ca1f3
mov ebx, dword [ebx + 0x20]
test ebx, ebx
je 0x4c7ef6
mov eax, dword [ebx]
push 0x11
push 3
push edi
mov ecx, ebx
call dword [eax + 0x14]
mov edi, dword [esp + 0xb4]
lea ecx, [esp + 0x14]
cmp edi, ecx
je 0x4c7f2a
mov eax, dword [edi + 4]
lea esi, [edi + 4]
test eax, eax
je 0x4c7f17
push eax
mov ecx, esi
call fcn.00411610
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [esi], eax
je 0x4c7f23
inc dword [eax]
mov edx, dword [esp + 0x1c]
mov dword [edi + 8], edx
lea ecx, [esp + 0x40]
lea eax, [esp + 0x44]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 2
and ecx, eax
call fcn.0042bdc0
lea ecx, [esp + 0x34]
lea edx, [esp + 0x38]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 1
and ecx, edx
call fcn.0042bdc0
lea ecx, [esp + 0x14]
lea eax, [esp + 0x18]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 0
and ecx, eax
call fcn.0042bdc0
lea ecx, [esp + 0x20]
lea edx, [esp + 0x24]
neg ecx
sbb ecx, ecx
mov dword [esp + 0xa8], 0xffffffff
and ecx, edx
call fcn.0042bdc0
mov al, 1
jmp 0x4ca1f3
mov ebx, dword [ebx + 0x20]
test ebx, ebx
je 0x4c7fb3
mov eax, dword [ebx]
push 0x11
push 3
push edi
mov ecx, ebx
call dword [eax + 0x14]
mov edi, dword [esp + 0xb4]
lea ecx, [esp + 0x14]
cmp edi, ecx
je 0x4c7fe7
mov eax, dword [edi + 4]
lea esi, [edi + 4]
test eax, eax
je 0x4c7fd4
push eax
mov ecx, esi
call fcn.00411610
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [esi], eax
je 0x4c7fe0
inc dword [eax]
mov edx, dword [esp + 0x1c]
mov dword [edi + 8], edx
lea ecx, [esp + 0x40]
lea eax, [esp + 0x44]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 2
and ecx, eax
call fcn.0042bdc0
lea ecx, [esp + 0x34]
lea edx, [esp + 0x38]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 1
and ecx, edx
call fcn.0042bdc0
lea ecx, [esp + 0x14]
lea eax, [esp + 0x18]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 0
and ecx, eax
call fcn.0042bdc0
lea ecx, [esp + 0x20]
lea edx, [esp + 0x24]
neg ecx
sbb ecx, ecx
mov dword [esp + 0xa8], 0xffffffff
and ecx, edx
call fcn.0042bdc0
mov al, 1
jmp 0x4ca1f3
mov ebx, dword [ebx + 0x20]
test ebx, ebx
je 0x4c8070
mov eax, dword [ebx]
push 0x11
push 3
push edi
mov ecx, ebx
call dword [eax + 0x14]
mov edi, dword [esp + 0xb4]
lea ecx, [esp + 0x14]
cmp edi, ecx
je 0x4c80a4
mov eax, dword [edi + 4]
lea esi, [edi + 4]
test eax, eax
je 0x4c8091
push eax
mov ecx, esi
call fcn.00411610
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [esi], eax
je 0x4c809d
inc dword [eax]
mov edx, dword [esp + 0x1c]
mov dword [edi + 8], edx
lea ecx, [esp + 0x40]
lea eax, [esp + 0x44]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 2
and ecx, eax
call fcn.0042bdc0
lea ecx, [esp + 0x34]
lea edx, [esp + 0x38]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 1
and ecx, edx
call fcn.0042bdc0
lea ecx, [esp + 0x14]
lea eax, [esp + 0x18]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 0
and ecx, eax
call fcn.0042bdc0
lea ecx, [esp + 0x20]
lea edx, [esp + 0x24]
neg ecx
sbb ecx, ecx
mov dword [esp + 0xa8], 0xffffffff
and ecx, edx
call fcn.0042bdc0
mov al, 1
jmp 0x4ca1f3
cmp dword [esi], 0
je case.0x4c820a.78
mov ecx, esi
call fcn.00404a70
cmp ebp, eax
jae 0x4c8187
mov eax, dword [esi]
cmp byte [eax + ebp + 0xc], 0x41
jne 0x4c8187
mov al, byte [esp + 0x86]
mov byte [esp + 0x33], 1
mov cl, byte [esp + 0x13]
dec ebp
test cl, cl
je 0x4c8239
test al, al
je 0x4c8239
cmp dword [esi], 0
je 0x4c8252
mov ecx, esi
call fcn.00404a70
cmp ebp, eax
jae 0x4c8239
mov ecx, dword [esi]
cmp byte [ecx + ebp + 0xc], 0x4e
jne 0x4c8239
mov eax, 5
jmp 0x4c83ed
cmp dword [esi], 0
je case.0x4c820a.78
mov ecx, esi
call fcn.00404a70
cmp ebp, eax
jae case.0x4c820a.78
mov ecx, dword [esi]
cmp byte [ecx + ebp + 0xc], 0x45
jne case.0x4c820a.78
mov al, byte [esp + 0x13]
dec ebp
test al, al
mov eax, ecx
je 0x4c81e2
test eax, eax
je case.0x4c820a.78
mov ecx, esi
call fcn.00404a70
cmp ebp, eax
jae case.0x4c820a.78
mov edx, dword [esi]
cmp byte [edx + ebp + 0xc], 0x4c
jne case.0x4c820a.78
xor eax, eax
jmp 0x4c83ed
test eax, eax
jne 0x4c81ea
xor al, al
jmp 0x4c81ff
mov ecx, esi
call fcn.00404a70
cmp ebp, eax
jb 0x4c81f9
xor al, al
jmp 0x4c81ff
mov eax, dword [esi]
mov al, byte [eax + ebp + 0xc]
movsx eax, al
add eax, 0xffffffb4
cmp eax, 8
ja case.0x4c820a.78
jmp dword [eax*4 + 0x4ca210]
mov eax, 1
jmp 0x4c83ed
mov eax, 2
jmp 0x4c83ed
mov eax, 3
jmp 0x4c83ed
mov eax, 4
jmp 0x4c83ed
cmp dword [esi], 0
je 0x4c8252
mov ecx, esi
call fcn.00404a70
cmp ebp, eax
jae 0x4c8252
mov edx, dword [esi]
cmp byte [edx + ebp + 0xc], 0x4c
je 0x4c825c
mov eax, 0x1e
jmp 0x4c83ed
cmp ebp, 2
ja 0x4c82d5
lea ecx, [esp + 0x40]
lea eax, [esp + 0x44]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 2
and ecx, eax
call fcn.0042bdc0
lea ecx, [esp + 0x34]
lea edx, [esp + 0x38]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 1
and ecx, edx
call fcn.0042bdc0
lea ecx, [esp + 0x14]
lea eax, [esp + 0x18]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 0
and ecx, eax
call fcn.0042bdc0
lea ecx, [esp + 0x20]
lea edx, [esp + 0x24]
neg ecx
sbb ecx, ecx
mov dword [esp + 0xa8], 0xffffffff
and ecx, edx
call fcn.0042bdc0
jmp 0x4ca1f1
mov eax, dword [esi]
dec ebp
test eax, eax
je 0x4c83c9
mov ecx, esi
call fcn.00404a70
cmp ebp, eax
jae 0x4c83c9
mov eax, dword [esi]
mov al, byte [eax + ebp + 0xc]
cmp al, 0x45
je 0x4c8368
cmp al, 0x53
jne 0x4c83c9
mov eax, dword [esi]
lea ebx, [ebp - 1]
test eax, eax
je 0x4c831e
mov ecx, esi
call fcn.00404a70
cmp ebx, eax
jae 0x4c831e
mov ecx, dword [esi]
cmp byte [ebx + ecx + 0xc], 0x4f
je 0x4c832f
mov ebx, dword [esp + 0xb4]
mov eax, 0x1a
jmp 0x4c83ce
mov eax, dword [esi]
add ebp, 0xfffffffe
test eax, eax
je 0x4c835a
mov ecx, esi
call fcn.00404a70
cmp ebp, eax
jae 0x4c835a
mov edx, dword [esi]
cmp byte [edx + ebp + 0xc], 0x4e
jne 0x4c835a
mov ebx, dword [esp + 0xb4]
mov eax, 6
jmp 0x4c83ce
mov ebx, dword [esp + 0xb4]
mov eax, 0xa
jmp 0x4c83ce
mov eax, dword [esi]
dec ebp
test eax, eax
je 0x4c83c9
mov ecx, esi
call fcn.00404a70
cmp ebp, eax
jae 0x4c838a
mov eax, dword [esi]
cmp byte [eax + ebp + 0xc], 0x4d
jne 0x4c838a
mov eax, 0xe
jmp 0x4c83ce
cmp dword [esi], 0
je 0x4c83c9
mov ecx, esi
call fcn.00404a70
cmp ebp, eax
jae 0x4c83aa
mov ecx, dword [esi]
cmp byte [ecx + ebp + 0xc], 0x54
jne 0x4c83aa
mov eax, 0x12
jmp 0x4c83ce
cmp dword [esi], 0
je 0x4c83c9
mov ecx, esi
call fcn.00404a70
cmp ebp, eax
jae 0x4c83c9
mov edx, dword [esi]
mov al, byte [edx + ebp + 0xc]
cmp al, 0x53
mov eax, 0x16
je 0x4c83ce
mov eax, 0x1a
mov cl, byte [esp + 0x13]
test cl, cl
je 0x4c83d9
add eax, 2
mov cl, byte [esp + 0x33]
test cl, cl
je 0x4c83e2
inc eax
cmp eax, 0xffff
je 0x4c87a0
shl eax, 4
lea ecx, [esp + 0x60]
lea esi, [eax + 0x5d0f68]
mov dword [esp + 0x74], esi
mov eax, dword [esi]
push eax
call fcn.00411a30
lea ecx, [esp + 0x60]
mov byte [esp + 0xa8], 0xe
push ecx
lea ecx, [esp + 0x48]
call fcn.00404a90
mov eax, dword [esp + 0x60]
xor ebx, ebx
cmp eax, ebx
mov byte [esp + 0xa8], 3
je 0x4c8438
push eax
lea ecx, [esp + 0x64]
call fcn.00411610
mov edx, dword [esi + 4]
lea ecx, [esp + 0x5c]
push edx
mov dword [esp + 0x64], ebx
call fcn.00411a30
mov ecx, dword [esp + 0xb8]
lea eax, [esp + 0x5c]
push eax
add ecx, 4
mov byte [esp + 0xac], 0xf
call fcn.00404a90
mov eax, dword [esp + 0x5c]
mov byte [esp + 0xa8], 3
cmp eax, ebx
je 0x4c847f
push eax
lea ecx, [esp + 0x60]
call fcn.00411610
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x5c], ebx
lea eax, [edx + 4]
mov eax, dword [edx + 4]
cmp eax, ebx
je 0x4c84a0
mov eax, dword [eax + 8]
cmp eax, ebx
je 0x4c84a0
lea esi, [eax - 1]
jmp 0x4c84a2
xor esi, esi
mov eax, dword [esp + 0x44]
cmp eax, ebx
je 0x4c84b4
mov eax, dword [eax + 8]
cmp eax, ebx
je 0x4c84b4
lea ebx, [eax - 1]
lea eax, [ebx + 1]
cmp esi, eax
jbe 0x4c8787
sub esi, ebx
lea ecx, [esp + 0x78]
push esi
push 0
push ecx
mov ecx, dword [esp + 0xc0]
call fcn.00414940
mov ebp, eax
lea edx, [esp + 0x14]
mov byte [esp + 0xa8], 0x10
cmp edx, ebp
je 0x4c850d
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4c84f9
push eax
lea ecx, [esp + 0x1c]
call fcn.00411610
mov eax, dword [ebp + 4]
test eax, eax
mov dword [esp + 0x18], eax
je 0x4c8506
inc dword [eax]
mov eax, dword [ebp + 8]
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0x78]
lea edx, [esp + 0x7c]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 3
and ecx, edx
call fcn.0042bdc0
mov ecx, dword [esp + 0xb4]
push ebx
lea eax, [esp + 0x50]
push esi
push eax
call fcn.00414940
mov esi, eax
lea ecx, [esp + 0x34]
mov byte [esp + 0xa8], 0x11
cmp ecx, esi
je 0x4c8573
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4c855f
push eax
lea ecx, [esp + 0x3c]
call fcn.00411610
mov eax, dword [esi + 4]
test eax, eax
mov dword [esp + 0x38], eax
je 0x4c856c
inc dword [eax]
mov edx, dword [esi + 8]
mov dword [esp + 0x3c], edx
lea ecx, [esp + 0x4c]
lea eax, [esp + 0x50]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 3
and ecx, eax
call fcn.0042bdc0
lea eax, [esp + 0x40]
lea ecx, [esp + 0x44]
neg eax
sbb eax, eax
push 0
and eax, ecx
lea ecx, [esp + 0x3c]
push eax
call fcn.004124b0
cmp eax, 3
jne 0x4c8787
mov ecx, dword [esp + 0x64]
lea edx, [esp + 0x14]
push edi
push edx
call fcn.0043f780
test al, al
je 0x4c877a
mov eax, dword [edi]
mov ecx, edi
mov byte [esp + 0x13], 0
xor esi, esi
call dword [eax + 0x68]
test eax, eax
jbe 0x4c877a
mov edx, dword [edi]
push esi
mov ecx, edi
xor ebp, ebp
call dword [edx + 0x84]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xac]
mov ecx, dword [eax + 0xc]
test ecx, ecx
jbe 0x4c8739
mov eax, dword [edi]
push esi
mov ecx, edi
xor bl, bl
call dword [eax + 0x84]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xac]
mov ecx, dword [eax + 0xc]
test ecx, ecx
jbe 0x4c872f
mov eax, dword [edi]
push 1
push esi
mov ecx, edi
call dword [eax + 0xac]
cmp al, 3
jne 0x4c86f4
mov edx, dword [edi]
push esi
mov ecx, edi
call dword [edx + 0x84]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xac]
push ebp
mov ecx, eax
call fcn.0041d8d0
cmp byte [eax + 4], 9
je 0x4c86ea
mov eax, dword [edi]
push esi
mov ecx, edi
call dword [eax + 0x84]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xac]
push ebp
mov ecx, eax
call fcn.0041d8d0
cmp byte [eax + 4], 1
jne 0x4c86a4
mov eax, dword [edi]
push esi
mov ecx, edi
call dword [eax + 0x84]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xac]
push ebp
mov ecx, eax
call fcn.0041d8d0
cmp byte [eax + 5], 1
je 0x4c86ea
mov eax, dword [edi]
push esi
mov ecx, edi
call dword [eax + 0x84]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xac]
push ebp
mov ecx, eax
call fcn.0041d8d0
cmp byte [eax + 4], 1
jne 0x4c86f4
mov eax, dword [edi]
push esi
mov ecx, edi
call dword [eax + 0x84]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xac]
push ebp
mov ecx, eax
call fcn.0041d8d0
cmp byte [eax + 5], 6
jne 0x4c86f4
mov byte [esp + 0x13], 1
mov bl, 1
inc ebp
jmp 0x4c8711
mov eax, dword [edi]
push esi
mov ecx, edi
call dword [eax + 0x84]
mov edx, dword [eax]
push ebp
mov ecx, eax
call dword [edx + 0xac]
mov ecx, eax
call fcn.0041d790
mov eax, dword [edi]
push esi
mov ecx, edi
call dword [eax + 0x84]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xac]
cmp ebp, dword [eax + 0xc]
jb 0x4c8622
mov eax, dword [edi]
test bl, bl
sete cl
push ecx
jmp 0x4c8755
mov edx, dword [edi]
push 1
push esi
mov ecx, edi
call dword [edx + 0xac]
cmp al, 3
jne 0x4c8751
mov byte [esp + 0x13], 1
jmp 0x4c875e
mov eax, dword [edi]
push 1
push esi
mov ecx, edi
call dword [eax + 0xa8]
mov edx, dword [edi]
mov ecx, edi
inc esi
call dword [edx + 0x68]
cmp esi, eax
jb 0x4c85de
mov al, byte [esp + 0x13]
test al, al
jne 0x4c882a
mov eax, dword [esp + 0x64]
cmp dword [eax], 0
jne 0x4c8910
mov ecx, dword [esp + 0x74]
mov eax, dword [ecx + 0xc]
cmp eax, 0xffff
jne 0x4c83ed
mov ebx, dword [esp + 0xb4]
mov eax, dword [esp + 0x64]
mov byte [esp + 0x33], 0
cmp dword [eax + 8], 0x3ed
jne 0x4c94de
push 0
lea ecx, [esp + 0x78]
push 0
push ecx
push 0x2d
lea ecx, [ebx + 4]
call fcn.00412cd0
mov ebp, dword [esp + 0x74]
and ebp, 0xffff
test al, al
jne 0x4c8989
lea esi, [esp + 0x40]
lea edx, [esp + 0x44]
neg esi
sbb esi, esi
mov byte [esp + 0xa8], 2
and esi, edx
mov eax, dword [esi]
test eax, eax
je 0x4c87ff
push eax
mov ecx, esi
call fcn.00411610
mov dword [esi], 0
lea esi, [esp + 0x34]
neg esi
sbb esi, esi
lea eax, [esp + 0x38]
and esi, eax
mov byte [esp + 0xa8], 1
mov eax, dword [esi]
test eax, eax
je 0x4c895e
jmp 0x4c8956
mov edi, dword [esp + 0xb4]
lea edx, [esp + 0x14]
cmp edi, edx
je 0x4c885e
mov eax, dword [edi + 4]
lea esi, [edi + 4]
test eax, eax
je 0x4c884b
push eax
mov ecx, esi
call fcn.00411610
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [esi], eax
je 0x4c8857
inc dword [eax]
mov eax, dword [esp + 0x1c]
mov dword [edi + 8], eax
lea esi, [esp + 0x40]
lea ecx, [esp + 0x44]
neg esi
sbb esi, esi
mov byte [esp + 0xa8], 2
and esi, ecx
mov eax, dword [esi]
test eax, eax
je 0x4c8882
push eax
mov ecx, esi
call fcn.00411610
mov dword [esi], 0
lea esi, [esp + 0x34]
neg esi
sbb esi, esi
lea edx, [esp + 0x38]
and esi, edx
mov byte [esp + 0xa8], 1
mov eax, dword [esi]
test eax, eax
je 0x4c88ac
push eax
mov ecx, esi
call fcn.00411610
mov dword [esi], 0
lea esi, [esp + 0x14]
neg esi
sbb esi, esi
lea eax, [esp + 0x18]
and esi, eax
mov byte [esp + 0xa8], 0
mov eax, dword [esi]
test eax, eax
je 0x4c88d6
push eax
mov ecx, esi
call fcn.00411610
mov dword [esi], 0
lea esi, [esp + 0x20]
neg esi
sbb esi, esi
lea ecx, [esp + 0x24]
and esi, ecx
mov dword [esp + 0xa8], 0xffffffff
mov eax, dword [esi]
test eax, eax
je 0x4c8903
push eax
mov ecx, esi
call fcn.00411610
mov dword [esi], 0
mov al, 1
jmp 0x4ca1f3
lea esi, [esp + 0x40]
lea edx, [esp + 0x44]
neg esi
sbb esi, esi
mov byte [esp + 0xa8], 2
and esi, edx
mov eax, dword [esi]
test eax, eax
je 0x4c8934
push eax
mov ecx, esi
call fcn.00411610
mov dword [esi], 0
lea esi, [esp + 0x34]
neg esi
sbb esi, esi
lea eax, [esp + 0x38]
and esi, eax
mov byte [esp + 0xa8], 1
mov eax, dword [esi]
test eax, eax
je 0x4c895e
push eax
mov ecx, esi
call fcn.00411610
mov dword [esi], 0
lea esi, [esp + 0x14]
neg esi
sbb esi, esi
lea ecx, [esp + 0x18]
and esi, ecx
mov byte [esp + 0xa8], 0
mov eax, dword [esi]
test eax, eax
je 0x4c988c
jmp 0x4c9884
push ebp
lea eax, [esp + 0x8c]
push 0
push eax
mov ecx, ebx
call fcn.00414940
mov esi, eax
lea ecx, [esp + 0x14]
mov byte [esp + 0xa8], 0x12
cmp ecx, esi
je 0x4c89d3
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4c89bf
push eax
lea ecx, [esp + 0x1c]
call fcn.00411610
mov eax, dword [esi + 4]
test eax, eax
mov dword [esp + 0x18], eax
je 0x4c89cc
inc dword [eax]
mov edx, dword [esi + 8]
mov dword [esp + 0x1c], edx
lea esi, [esp + 0x88]
lea eax, [esp + 0x8c]
neg esi
sbb esi, esi
mov byte [esp + 0xa8], 3
and esi, eax
mov eax, dword [esi]
test eax, eax
je 0x4c89fd
push eax
mov ecx, esi
call fcn.00411610
inc ebp
push 0xffff
lea ecx, [esp + 0x8c]
push ebp
push ecx
mov ecx, ebx
mov dword [esi], 0
call fcn.00414940
mov esi, eax
lea edx, [esp + 0x34]
mov byte [esp + 0xa8], 0x13
cmp edx, esi
je 0x4c8a51
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4c8a3d
push eax
lea ecx, [esp + 0x3c]
call fcn.00411610
mov eax, dword [esi + 4]
test eax, eax
mov dword [esp + 0x38], eax
je 0x4c8a4a
inc dword [eax]
mov eax, dword [esi + 8]
mov dword [esp + 0x3c], eax
lea esi, [esp + 0x88]
lea ecx, [esp + 0x8c]
neg esi
sbb esi, esi
mov byte [esp + 0xa8], 3
and esi, ecx
mov eax, dword [esi]
test eax, eax
je 0x4c8a7b
push eax
mov ecx, esi
call fcn.00411610
push 0
lea edx, [esp + 0x78]
push 0
push edx
push 0x2d
lea ecx, [esp + 0x48]
mov dword [esi], 0
call fcn.00412cd0
mov ebp, dword [esp + 0x74]
and ebp, 0xffff
test al, al
je 0x4c8b80
lea eax, [ebp + 1]
push 0xffff
lea ecx, [esp + 0x8c]
push eax
push ecx
lea ecx, [esp + 0x40]
call fcn.00414940
test eax, eax
mov byte [esp + 0xa8], 0x14
je 0x4c8ad2
add eax, 4
jmp 0x4c8ad4
xor eax, eax
push eax
lea ecx, [esp + 0x1c]
call fcn.00412320
lea esi, [esp + 0x88]
lea edx, [esp + 0x8c]
neg esi
sbb esi, esi
mov byte [esp + 0xa8], 3
and esi, edx
mov eax, dword [esi]
test eax, eax
je 0x4c8b08
push eax
mov ecx, esi
call fcn.00411610
push ebp
lea eax, [esp + 0x8c]
push 0
push eax
lea ecx, [esp + 0x40]
mov dword [esi], 0
call fcn.00414940
mov esi, eax
lea ecx, [esp + 0x34]
mov byte [esp + 0xa8], 0x15
cmp ecx, esi
je 0x4c8b5a
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4c8b46
push eax
lea ecx, [esp + 0x3c]
call fcn.00411610
mov eax, dword [esi + 4]
test eax, eax
mov dword [esp + 0x38], eax
je 0x4c8b53
inc dword [eax]
mov edx, dword [esi + 8]
mov dword [esp + 0x3c], edx
lea ecx, [esp + 0x88]
lea eax, [esp + 0x8c]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 3
and ecx, eax
call fcn.0042bdc0
mov byte [esp + 0x33], 1
lea eax, [esp + 0x34]
lea ecx, [esp + 0x38]
neg eax
sbb eax, eax
and eax, ecx
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x7c], eax
je 0x4c8b9a
inc dword [eax]
mov edx, dword [esp + 0x3c]
mov esi, 0x596bf8
mov dword [esp + 0x78], esi
mov dword [esp + 0x80], edx
lea ecx, [esp + 0x78]
mov byte [esp + 0xa8], 0x16
call fcn.00414a80
lea ecx, [esp + 0x7c]
call fcn.004133e0
lea eax, [esp + 0x14]
lea ecx, [esp + 0x18]
neg eax
sbb eax, eax
and eax, ecx
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x50], eax
je 0x4c8be2
inc dword [eax]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x54], edx
mov eax, dword [esp + 0x18]
mov byte [esp + 0xa8], 0x17
test eax, eax
je 0x4c8c08
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4c8c08
dec ecx
jmp 0x4c8c0a
xor ecx, ecx
test eax, eax
lea edx, [ecx - 1]
jne 0x4c8c17
mov byte [esp + 0x2c], al
jmp 0x4c8c32
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4c8c23
dec ecx
cmp edx, ecx
jb 0x4c8c2a
mov byte [esp + 0x2c], 0
jmp 0x4c8c32
mov al, byte [edx + eax + 0xc]
mov byte [esp + 0x2c], al
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x74], 0
and eax, 0xff
mov cl, byte [eax + eax*4 + 0x5c9c1b]
mov eax, dword [0x5d15a8]
test eax, eax
mov byte [esp + 0x13], cl
je 0x4c948a
mov edx, dword [esp + 0xb8]
mov esi, 0x5d15a8
add edx, 4
xor ebp, ebp
mov dword [esp + 0x9c], edx
mov eax, dword [esi]
lea ecx, [esp + 0x60]
push eax
call fcn.00411a30
lea ecx, [esp + 0x60]
mov byte [esp + 0xa8], 0x18
push ecx
lea ecx, [esp + 0x48]
call fcn.00404a90
mov eax, dword [esp + 0x60]
mov byte [esp + 0xa8], 0x17
cmp eax, ebp
je 0x4c8caf
push eax
lea ecx, [esp + 0x64]
call fcn.00411610
mov edx, dword [esi + 4]
lea ecx, [esp + 0x5c]
push edx
mov dword [esp + 0x64], ebp
call fcn.00411a30
mov ecx, dword [esp + 0x9c]
lea eax, [esp + 0x5c]
push eax
mov byte [esp + 0xac], 0x19
call fcn.00404a90
mov eax, dword [esp + 0x5c]
mov byte [esp + 0xa8], 0x17
cmp eax, ebp
je 0x4c8cf3
push eax
lea ecx, [esp + 0x60]
call fcn.00411610
lea eax, [esp + 0x40]
lea ecx, [esp + 0x44]
neg eax
sbb eax, eax
push ebp
and eax, ecx
lea ecx, [esp + 0x80]
push eax
mov dword [esp + 0x64], ebp
call fcn.004124b0
cmp eax, 3
jne 0x4c9461
mov eax, dword [esp + 0x24]
cmp eax, ebp
je 0x4c8d2e
push eax
lea ecx, [esp + 0x28]
call fcn.00411610
mov eax, dword [esp + 0x18]
cmp eax, ebp
mov dword [esp + 0x24], eax
je 0x4c8d3c
inc dword [eax]
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x20]
mov dword [esp + 0x28], edx
call fcn.00414a80
mov eax, dword [esp + 0x24]
cmp eax, ebp
je 0x4c8d5f
mov ecx, dword [eax + 8]
cmp ecx, ebp
je 0x4c8d5f
dec ecx
jmp 0x4c8d61
xor ecx, ecx
cmp eax, ebp
lea edx, [ecx - 1]
jne 0x4c8d6f
mov byte [esp + 0x68], 0
jmp 0x4c8d8a
mov ecx, dword [eax + 8]
cmp ecx, ebp
je 0x4c8d7b
dec ecx
cmp edx, ecx
jb 0x4c8d82
mov byte [esp + 0x68], 0
jmp 0x4c8d8a
mov al, byte [edx + eax + 0xc]
mov byte [esp + 0x68], al
lea ecx, [esp + 0x24]
call fcn.004133e0
push 0x5d1994
lea ecx, [esp + 0x70]
call fcn.00411a30
lea ecx, [esp + 0x6c]
push ebp
push ecx
lea ecx, [esp + 0x84]
mov byte [esp + 0xb0], 0x1a
call fcn.00412910
test al, al
jne 0x4c8e0b
push 0x5ccafc
lea ecx, [esp + 0x74]
call fcn.00411a30
lea edx, [esp + 0x70]
push ebp
push edx
lea ecx, [esp + 0x84]
mov byte [esp + 0xb0], 0x1b
call fcn.00412910
mov bl, al
mov eax, dword [esp + 0x70]
cmp eax, ebp
mov byte [esp + 0xa8], 0x1a
je 0x4c8e03
push eax
lea ecx, [esp + 0x74]
call fcn.00411610
test bl, bl
mov dword [esp + 0x70], ebp
je 0x4c8e0d
mov bl, 1
mov eax, dword [esp + 0x6c]
mov byte [esp + 0xa8], 0x17
cmp eax, ebp
je 0x4c8e27
push eax
lea ecx, [esp + 0x70]
call fcn.00411610
test bl, bl
mov dword [esp + 0x6c], ebp
je 0x4c936b
mov eax, dword [esp + 0x18]
cmp eax, ebp
je 0x4c8e45
mov ecx, dword [eax + 8]
cmp ecx, ebp
je 0x4c8e45
dec ecx
jmp 0x4c8e47
xor ecx, ecx
cmp eax, ebp
lea edx, [ecx - 1]
jne 0x4c8e52
xor al, al
jmp 0x4c8e66
mov ecx, dword [eax + 8]
cmp ecx, ebp
je 0x4c8e5e
dec ecx
cmp edx, ecx
jb 0x4c8e62
xor al, al
jmp 0x4c8e66
mov al, byte [edx + eax + 0xc]
movsx eax, al
add eax, 0x3f
cmp eax, 0xa8
ja case.0x4c8e7f.62
xor ecx, ecx
mov cl, byte [eax + 0x4ca23c]
jmp dword [ecx*4 + 0x4ca234]
push 0x52
lea ecx, [esp + 0x28]
call fcn.004122c0
mov ecx, dword [esp + 0x64]
lea edx, [esp + 0x20]
push edi
push edx
call fcn.0043f780
test al, al
je 0x4c8f49
mov eax, dword [edi]
push 3
mov ecx, edi
call dword [eax + 0x44]
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x68]
test eax, eax
jbe 0x4c8f49
lea ecx, [esp + 0x50]
mov esi, 1
call fcn.00404a70
cmp eax, esi
jae 0x4c8edd
lea ecx, [esp + 0x50]
call fcn.00404a70
mov esi, eax
cmp dword [esp + 0x50], ebp
je 0x4c8f1f
lea ecx, [esp + 0x50]
call fcn.00404a70
test eax, eax
je 0x4c8f1f
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 4]
push ecx
lea ecx, [esp + 0x54]
call fcn.004119f0
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 8]
sub ecx, esi
mov dword [eax + 8], ecx
lea ecx, [esp + 0x50]
call fcn.00404a70
mov edx, dword [esp + 0x50]
mov byte [eax + edx + 0xc], 0
mov eax, dword [esp + 0x68]
lea ecx, [esp + 0x50]
push eax
call fcn.004122c0
mov al, byte [esp + 0x13]
test al, al
je 0x4c929c
push 0x52
lea ecx, [esp + 0x54]
call fcn.004122c0
jmp 0x4c9445
lea ecx, [esp + 0x24]
mov esi, 1
call fcn.00404a70
cmp eax, esi
jae 0x4c8f66
lea ecx, [esp + 0x24]
call fcn.00404a70
mov esi, eax
cmp dword [esp + 0x24], ebp
je 0x4c8fa8
lea ecx, [esp + 0x24]
call fcn.00404a70
test eax, eax
je 0x4c8fa8
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 4]
lea ecx, [esp + 0x24]
push edx
call fcn.004119f0
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 8]
sub ecx, esi
mov dword [eax + 8], ecx
lea ecx, [esp + 0x24]
call fcn.00404a70
mov ecx, dword [esp + 0x24]
mov byte [eax + ecx + 0xc], 0
push 0x5a
lea ecx, [esp + 0x28]
call fcn.004122c0
mov ebx, dword [esp + 0x64]
lea edx, [esp + 0x20]
push edi
push edx
mov ecx, ebx
call fcn.0043f780
test al, al
je 0x4c9079
mov eax, dword [edi]
push 3
mov ecx, edi
call dword [eax + 0x44]
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x68]
test eax, eax
jbe 0x4c9079
lea ecx, [esp + 0x50]
mov esi, 1
call fcn.00404a70
cmp eax, esi
jae 0x4c9001
lea ecx, [esp + 0x50]
call fcn.00404a70
mov esi, eax
cmp dword [esp + 0x50], ebp
je 0x4c9043
lea ecx, [esp + 0x50]
call fcn.00404a70
test eax, eax
je 0x4c9043
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 4]
push ecx
lea ecx, [esp + 0x54]
call fcn.004119f0
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 8]
sub ecx, esi
mov dword [eax + 8], ecx
lea ecx, [esp + 0x50]
call fcn.00404a70
mov edx, dword [esp + 0x50]
mov byte [eax + edx + 0xc], 0
mov eax, dword [esp + 0x68]
lea ecx, [esp + 0x50]
push eax
call fcn.004122c0
mov al, byte [esp + 0x13]
test al, al
je 0x4c9069
push 0x52
lea ecx, [esp + 0x54]
call fcn.004122c0
jmp 0x4c9445
push 0x7a
lea ecx, [esp + 0x54]
call fcn.004122c0
jmp 0x4c9445
lea ecx, [esp + 0x24]
mov esi, 1
call fcn.00404a70
cmp eax, esi
jae 0x4c9096
lea ecx, [esp + 0x24]
call fcn.00404a70
mov esi, eax
cmp dword [esp + 0x24], ebp
je 0x4c90d8
lea ecx, [esp + 0x24]
call fcn.00404a70
test eax, eax
je 0x4c90d8
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 4]
lea ecx, [esp + 0x24]
push edx
call fcn.004119f0
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 8]
sub ecx, esi
mov dword [eax + 8], ecx
lea ecx, [esp + 0x24]
call fcn.00404a70
mov ecx, dword [esp + 0x24]
mov byte [eax + ecx + 0xc], 0
push 0x53
lea ecx, [esp + 0x28]
call fcn.004122c0
lea edx, [esp + 0x20]
push edi
push edx
mov ecx, ebx
call fcn.0043f780
test al, al
je 0x4c9445
mov eax, dword [edi]
push 3
mov ecx, edi
call dword [eax + 0x44]
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x68]
test eax, eax
jbe 0x4c9445
lea ecx, [esp + 0x50]
mov esi, 1
call fcn.00404a70
cmp eax, esi
jae 0x4c912d
lea ecx, [esp + 0x50]
call fcn.00404a70
mov esi, eax
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4c9171
lea ecx, [esp + 0x50]
call fcn.00404a70
test eax, eax
je 0x4c9171
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 4]
push ecx
lea ecx, [esp + 0x54]
call fcn.004119f0
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 8]
sub ecx, esi
mov dword [eax + 8], ecx
lea ecx, [esp + 0x50]
call fcn.00404a70
mov edx, dword [esp + 0x50]
mov byte [eax + edx + 0xc], 0
mov eax, dword [esp + 0x68]
lea ecx, [esp + 0x50]
push eax
call fcn.004122c0
mov al, byte [esp + 0x13]
test al, al
je 0x4c91e1
push 0x53
lea ecx, [esp + 0x54]
call fcn.004122c0
jmp 0x4c9445
push 0x53
lea ecx, [esp + 0x28]
call fcn.004122c0
lea ecx, [esp + 0x20]
push edi
push ecx
mov ecx, dword [esp + 0x6c]
call fcn.0043f780
test al, al
je 0x4c91f1
mov edx, dword [edi]
push 3
mov ecx, edi
call dword [edx + 0x44]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x68]
test eax, eax
jbe 0x4c91f1
mov al, byte [esp + 0x13]
test al, al
je 0x4c91e1
push 0x53
lea ecx, [esp + 0x54]
call fcn.004122c0
jmp 0x4c9445
push 0x73
lea ecx, [esp + 0x54]
call fcn.004122c0
jmp 0x4c9445
lea ecx, [esp + 0x24]
mov esi, 1
call fcn.00404a70
cmp eax, esi
jae 0x4c920e
lea ecx, [esp + 0x24]
call fcn.00404a70
mov esi, eax
cmp dword [esp + 0x24], ebp
je 0x4c9250
lea ecx, [esp + 0x24]
call fcn.00404a70
test eax, eax
je 0x4c9250
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 4]
lea ecx, [esp + 0x24]
push edx
call fcn.004119f0
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 8]
sub ecx, esi
mov dword [eax + 8], ecx
lea ecx, [esp + 0x24]
call fcn.00404a70
mov ecx, dword [esp + 0x24]
mov byte [eax + ecx + 0xc], 0
push 0x52
lea ecx, [esp + 0x28]
call fcn.004122c0
mov ebx, dword [esp + 0x64]
lea edx, [esp + 0x20]
push edi
push edx
mov ecx, ebx
call fcn.0043f780
test al, al
je 0x4c92ac
mov eax, dword [edi]
push 3
mov ecx, edi
call dword [eax + 0x44]
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x68]
test eax, eax
jbe 0x4c92ac
mov al, byte [esp + 0x13]
test al, al
je 0x4c929c
push 0x52
lea ecx, [esp + 0x54]
call fcn.004122c0
jmp 0x4c9445
push 0x72
lea ecx, [esp + 0x54]
call fcn.004122c0
jmp 0x4c9445
lea ecx, [esp + 0x24]
mov esi, 1
call fcn.00404a70
cmp eax, esi
jae 0x4c92c9
lea ecx, [esp + 0x24]
call fcn.00404a70
mov esi, eax
cmp dword [esp + 0x24], ebp
je 0x4c930b
lea ecx, [esp + 0x24]
call fcn.00404a70
test eax, eax
je 0x4c930b
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 4]
push ecx
lea ecx, [esp + 0x28]
call fcn.004119f0
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 8]
sub ecx, esi
mov dword [eax + 8], ecx
lea ecx, [esp + 0x24]
call fcn.00404a70
mov edx, dword [esp + 0x24]
mov byte [eax + edx + 0xc], 0
push 0x5a
lea ecx, [esp + 0x28]
call fcn.004122c0
lea eax, [esp + 0x20]
push edi
push eax
mov ecx, ebx
call fcn.0043f780
test al, al
je 0x4c9445
mov edx, dword [edi]
push 3
mov ecx, edi
call dword [edx + 0x44]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x68]
test eax, eax
jbe 0x4c9445
mov al, byte [esp + 0x13]
test al, al
je 0x4c935b
push 0x5a
lea ecx, [esp + 0x54]
call fcn.004122c0
jmp 0x4c9445
push 0x7a
lea ecx, [esp + 0x54]
call fcn.004122c0
jmp 0x4c9445
mov esi, dword [esp + 0x64]
lea ecx, [esp + 0x20]
push edi
push ecx
mov ecx, esi
call fcn.0043f780
test al, al
je 0x4c9398
mov edx, dword [edi]
push 3
mov ecx, edi
call dword [edx + 0x44]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x68]
test eax, eax
ja 0x4c961e
mov al, byte [esp + 0x33]
test al, al
jne 0x4c9445
push 0
push 0x5d1ad8
lea ecx, [esp + 0x84]
call fcn.00412440
cmp eax, 3
jne 0x4c9445
push 1
push 0x4f
lea ecx, [esp + 0x34]
call fcn.00411aa0
lea ecx, [esp + 0x2c]
push 0
push ecx
lea ecx, [esp + 0x2c]
mov byte [esp + 0xb0], 0x1c
call fcn.004128c0
mov bl, al
mov eax, dword [esp + 0x2c]
test eax, eax
mov byte [esp + 0xa8], 0x17
je 0x4c9401
push eax
lea ecx, [esp + 0x30]
call fcn.00411610
test bl, bl
mov dword [esp + 0x2c], 0
je 0x4c9445
push 0x53
lea ecx, [esp + 0x28]
call fcn.004122c0
mov ebx, dword [esp + 0x64]
lea edx, [esp + 0x20]
push edi
push edx
mov ecx, ebx
call fcn.0043f780
test al, al
je 0x4c9445
mov eax, dword [edi]
push 3
mov ecx, edi
call dword [eax + 0x44]
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x68]
test eax, eax
ja 0x4c9693
mov eax, dword [esp + 0x64]
cmp dword [eax], 0
jne 0x4c97c0
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x68]
test eax, eax
ja 0x4c98ba
mov eax, dword [esp + 0x74]
xor ebp, ebp
inc eax
mov dword [esp + 0x74], eax
shl eax, 4
lea esi, [eax + 0x5d15a8]
mov eax, dword [eax + 0x5d15a8]
cmp eax, ebp
jne 0x4c8c73
mov ebx, dword [esp + 0xb4]
lea esi, [esp + 0x4c]
lea eax, [esp + 0x50]
neg esi
sbb esi, esi
mov byte [esp + 0xa8], 0x16
and esi, eax
mov eax, dword [esi]
test eax, eax
je 0x4c94ae
push eax
mov ecx, esi
call fcn.00411610
mov dword [esi], 0
lea esi, [esp + 0x78]
neg esi
sbb esi, esi
lea ecx, [esp + 0x7c]
and esi, ecx
mov byte [esp + 0xa8], 3
mov eax, dword [esi]
test eax, eax
je 0x4c94d8
push eax
mov ecx, esi
call fcn.00411610
mov dword [esi], 0
mov edx, dword [esp + 0x64]
cmp dword [edx + 8], 0x3ea
jne 0x4ca173
push str.chen
lea ecx, [esp + 0x64]
call fcn.00411a30
lea eax, [esp + 0x60]
lea esi, [ebx + 4]
push 1
push eax
mov ecx, esi
mov byte [esp + 0xb0], 0x1d
call fcn.004128c0
test al, al
jne 0x4c99fc
push str.lein
lea ecx, [esp + 0x30]
call fcn.00411a30
lea ecx, [esp + 0x2c]
push 1
push ecx
mov ecx, esi
mov byte [esp + 0xb0], 0x1e
call fcn.004128c0
test al, al
mov eax, dword [esp + 0x2c]
mov byte [esp + 0xa8], 0x1d
sete bl
test eax, eax
je 0x4c9561
push eax
lea ecx, [esp + 0x30]
call fcn.00411610
test bl, bl
mov dword [esp + 0x2c], 0
je 0x4c99fc
push str.chens
lea ecx, [esp + 0x70]
call fcn.00411a30
lea edx, [esp + 0x6c]
push 1
push edx
mov ecx, esi
mov byte [esp + 0xb0], 0x1f
call fcn.004128c0
test al, al
mov eax, dword [esp + 0x6c]
mov byte [esp + 0xa8], 0x1d
sete bl
test eax, eax
je 0x4c95b4
push eax
lea ecx, [esp + 0x70]
call fcn.00411610
test bl, bl
mov dword [esp + 0x6c], 0
je 0x4c99fc
push str.leins
lea ecx, [esp + 0x74]
call fcn.00411a30
lea eax, [esp + 0x70]
push 1
push eax
mov ecx, esi
mov byte [esp + 0xb0], 0x20
call fcn.004128c0
test al, al
mov eax, dword [esp + 0x70]
mov byte [esp + 0xa8], 0x1d
sete bl
test eax, eax
je 0x4c9607
push eax
lea ecx, [esp + 0x74]
call fcn.00411610
test bl, bl
mov dword [esp + 0x70], 0
je 0x4c99fc
mov bl, 1
jmp 0x4c99fe
mov ecx, dword [esp + 0xb4]
lea eax, [esp + 0x14]
cmp ecx, eax
mov byte [esi + 0x41], 0xe
je 0x4c9658
mov edi, ecx
mov eax, dword [edi + 4]
lea esi, [edi + 4]
cmp eax, ebp
je 0x4c9645
push eax
mov ecx, esi
call fcn.00411610
mov eax, dword [esp + 0x18]
cmp eax, ebp
mov dword [esi], eax
je 0x4c9651
inc dword [eax]
mov ecx, dword [esp + 0x1c]
mov dword [edi + 8], ecx
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x50]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 0x16
and ecx, edx
call fcn.0042bdc0
lea ecx, [esp + 0x78]
lea eax, [esp + 0x7c]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 3
and ecx, eax
call fcn.0042bdc0
jmp 0x4ca0fd
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4c96a5
mov eax, dword [ecx + 8]
test eax, eax
je 0x4c96a5
dec eax
jmp 0x4c96a7
xor eax, eax
test ecx, ecx
lea esi, [eax - 1]
jne 0x4c96b4
mov byte [esp + 0x2c], cl
jmp 0x4c96d4
lea ecx, [esp + 0x18]
call fcn.00404a70
cmp esi, eax
jb 0x4c96c8
mov byte [esp + 0x2c], 0
jmp 0x4c96d4
mov ecx, dword [esp + 0x18]
mov dl, byte [esi + ecx + 0xc]
mov byte [esp + 0x2c], dl
mov eax, dword [esp + 0x2c]
and eax, 0xff
mov cl, byte [eax + eax*4 + 0x5c9c1b]
test cl, cl
je 0x4c96ec
push 0x53
jmp 0x4c96ee
push 0x73
lea ecx, [esp + 0x1c]
call fcn.004122c0
mov edi, dword [esp + 0xb4]
lea eax, [esp + 0x14]
cmp edi, eax
mov byte [ebx + 0x41], 0xe
je 0x4c972f
mov eax, dword [edi + 4]
lea esi, [edi + 4]
test eax, eax
je 0x4c971c
push eax
mov ecx, esi
call fcn.00411610
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [esi], eax
je 0x4c9728
inc dword [eax]
mov ecx, dword [esp + 0x1c]
mov dword [edi + 8], ecx
lea ecx, [esp + 0x4c]
lea edx, [esp + 0x50]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 0x16
and ecx, edx
call fcn.0042bdc0
lea ecx, [esp + 0x78]
lea eax, [esp + 0x7c]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 3
and ecx, eax
call fcn.0042bdc0
lea ecx, [esp + 0x40]
lea edx, [esp + 0x44]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 2
and ecx, edx
call fcn.0042bdc0
lea ecx, [esp + 0x34]
lea eax, [esp + 0x38]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 1
and ecx, eax
call fcn.0042bdc0
lea esi, [esp + 0x14]
lea ecx, [esp + 0x18]
neg esi
sbb esi, esi
mov byte [esp + 0xa8], 0
and esi, ecx
mov eax, dword [esi]
test eax, eax
je 0x4c99c2
jmp 0x4c99ba
lea esi, [esp + 0x4c]
lea eax, [esp + 0x50]
neg esi
sbb esi, esi
mov byte [esp + 0xa8], 0x16
and esi, eax
mov eax, dword [esi]
test eax, eax
je 0x4c97e4
push eax
mov ecx, esi
call fcn.00411610
mov dword [esi], 0
lea esi, [esp + 0x78]
neg esi
sbb esi, esi
lea ecx, [esp + 0x7c]
and esi, ecx
mov byte [esp + 0xa8], 3
mov eax, dword [esi]
test eax, eax
je 0x4c980e
push eax
mov ecx, esi
call fcn.00411610
mov dword [esi], 0
lea esi, [esp + 0x40]
neg esi
sbb esi, esi
lea edx, [esp + 0x44]
and esi, edx
mov byte [esp + 0xa8], 2
mov eax, dword [esi]
test eax, eax
je 0x4c9838
push eax
mov ecx, esi
call fcn.00411610
mov dword [esi], 0
lea esi, [esp + 0x34]
neg esi
sbb esi, esi
lea eax, [esp + 0x38]
and esi, eax
mov byte [esp + 0xa8], 1
mov eax, dword [esi]
test eax, eax
je 0x4c9862
push eax
mov ecx, esi
call fcn.00411610
mov dword [esi], 0
lea esi, [esp + 0x14]
neg esi
sbb esi, esi
lea ecx, [esp + 0x18]
and esi, ecx
mov byte [esp + 0xa8], 0
mov eax, dword [esi]
test eax, eax
je 0x4c988c
push eax
mov ecx, esi
call fcn.00411610
mov dword [esi], 0
lea esi, [esp + 0x20]
neg esi
sbb esi, esi
lea edx, [esp + 0x24]
and esi, edx
mov dword [esp + 0xa8], 0xffffffff
mov eax, dword [esi]
test eax, eax
je 0x4ca1eb
jmp 0x4ca1e3
mov edi, dword [esp + 0xb4]
lea eax, [esp + 0x4c]
cmp edi, eax
je 0x4c98ee
mov eax, dword [edi + 4]
lea esi, [edi + 4]
test eax, eax
je 0x4c98db
push eax
mov ecx, esi
call fcn.00411610
mov eax, dword [esp + 0x50]
test eax, eax
mov dword [esi], eax
je 0x4c98e7
inc dword [eax]
mov ecx, dword [esp + 0x54]
mov dword [edi + 8], ecx
lea esi, [esp + 0x4c]
mov edx, dword [esp + 0x64]
neg esi
sbb esi, esi
lea eax, [esp + 0x50]
and esi, eax
mov byte [edx + 0x41], 0xe
mov byte [esp + 0xa8], 0x16
mov eax, dword [esi]
test eax, eax
je 0x4c991a
push eax
mov ecx, esi
call fcn.00411610
mov dword [esi], 0
lea esi, [esp + 0x78]
neg esi
sbb esi, esi
lea ecx, [esp + 0x7c]
and esi, ecx
mov byte [esp + 0xa8], 3
mov eax, dword [esi]
test eax, eax
je 0x4c9944
push eax
mov ecx, esi
call fcn.00411610
mov dword [esi], 0
lea esi, [esp + 0x40]
neg esi
sbb esi, esi
lea edx, [esp + 0x44]
and esi, edx
mov byte [esp + 0xa8], 2
mov eax, dword [esi]
test eax, eax
je 0x4c996e
push eax
mov ecx, esi
call fcn.00411610
mov dword [esi], 0
lea esi, [esp + 0x34]
neg esi
sbb esi, esi
lea eax, [esp + 0x38]
and esi, eax
mov byte [esp + 0xa8], 1
mov eax, dword [esi]
test eax, eax
je 0x4c9998
push eax
mov ecx, esi
call fcn.00411610
mov dword [esi], 0
lea esi, [esp + 0x14]
neg esi
sbb esi, esi
lea ecx, [esp + 0x18]
and esi, ecx
mov byte [esp + 0xa8], 0
mov eax, dword [esi]
test eax, eax
je 0x4c99c2
push eax
mov ecx, esi
call fcn.00411610
mov dword [esi], 0
lea esi, [esp + 0x20]
neg esi
sbb esi, esi
lea edx, [esp + 0x24]
and esi, edx
mov dword [esp + 0xa8], 0xffffffff
mov eax, dword [esi]
test eax, eax
je 0x4c99ef
push eax
mov ecx, esi
call fcn.00411610
mov dword [esi], 0
mov al, 1
jmp 0x4ca1f3
xor bl, bl
mov eax, dword [esp + 0x60]
mov byte [esp + 0xa8], 3
test eax, eax
je 0x4c9a18
push eax
lea ecx, [esp + 0x64]
call fcn.00411610
test bl, bl
je 0x4c9ac6
lea esi, [esp + 0x40]
lea ecx, [esp + 0x44]
neg esi
sbb esi, esi
mov byte [esp + 0xa8], 2
and esi, ecx
mov eax, dword [esi]
test eax, eax
je 0x4c9a44
push eax
mov ecx, esi
call fcn.00411610
mov dword [esi], 0
lea esi, [esp + 0x34]
neg esi
sbb esi, esi
lea edx, [esp + 0x38]
and esi, edx
mov byte [esp + 0xa8], 1
mov eax, dword [esi]
test eax, eax
je 0x4c9a6e
push eax
mov ecx, esi
call fcn.00411610
mov dword [esi], 0
lea esi, [esp + 0x14]
neg esi
sbb esi, esi
lea eax, [esp + 0x18]
and esi, eax
mov byte [esp + 0xa8], 0
mov eax, dword [esi]
test eax, eax
je 0x4c9a98
push eax
mov ecx, esi
call fcn.00411610
mov dword [esi], 0
lea esi, [esp + 0x20]
neg esi
sbb esi, esi
lea ecx, [esp + 0x24]
and esi, ecx
mov dword [esp + 0xa8], 0xffffffff
mov eax, dword [esi]
test eax, eax
je 0x4ca1eb
jmp 0x4ca1e3
push 0x5d2388
lea ecx, [esp + 0x30]
mov byte [esp + 0x17], 0
mov byte [esp + 0x37], 0
call fcn.00411a30
lea edx, [esp + 0x2c]
push 1
push edx
mov ecx, esi
mov byte [esp + 0xb0], 0x21
call fcn.004128c0
mov bl, al
mov eax, dword [esp + 0x2c]
test eax, eax
mov byte [esp + 0xa8], 3
je 0x4c9b10
push eax
lea ecx, [esp + 0x30]
call fcn.00411610
test bl, bl
je 0x4c9b6e
mov eax, dword [esi]
mov byte [esp + 0x33], 1
test eax, eax
mov ebp, 1
je 0x4c9b30
mov eax, dword [eax + 8]
test eax, eax
je 0x4c9b30
dec eax
cmp eax, ebp
jae 0x4c9b39
mov ecx, esi
call fcn.00404a70
mov ebp, eax
cmp dword [esi], 0
je 0x4c9b6e
mov ecx, esi
call fcn.00404a70
test eax, eax
je 0x4c9b6e
mov eax, dword [esi]
mov ecx, dword [eax + 4]
push ecx
mov ecx, esi
call fcn.004119f0
mov eax, dword [esi]
mov ecx, dword [eax + 8]
sub ecx, ebp
mov dword [eax + 8], ecx
mov ecx, esi
call fcn.00404a70
mov edx, dword [esi]
mov byte [eax + edx + 0xc], 0
mov eax, dword [esi]
test eax, eax
je 0x4c9b7e
mov eax, dword [eax + 8]
test eax, eax
je 0x4c9b7e
dec eax
jmp 0x4c9b80
xor eax, eax
mov ebx, dword [esp + 0xb4]
add eax, 0xfffffffc
push eax
lea eax, [esp + 0x8c]
push 0
push eax
mov ecx, ebx
call fcn.00414940
mov ebp, eax
lea ecx, [esp + 0x14]
mov byte [esp + 0xa8], 0x22
cmp ecx, ebp
je 0x4c9bd4
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4c9bc0
push eax
lea ecx, [esp + 0x1c]
call fcn.00411610
mov eax, dword [ebp + 4]
test eax, eax
mov dword [esp + 0x18], eax
je 0x4c9bcd
inc dword [eax]
mov edx, dword [ebp + 8]
mov dword [esp + 0x1c], edx
lea ecx, [esp + 0x88]
lea eax, [esp + 0x8c]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 3
and ecx, eax
call fcn.0042bdc0
mov esi, dword [esi]
test esi, esi
je 0x4c9c07
mov esi, dword [esi + 8]
test esi, esi
je 0x4c9c07
lea eax, [esi - 1]
jmp 0x4c9c09
xor eax, eax
add eax, 0xfffffffc
push 0xffff
lea ecx, [esp + 0x8c]
push eax
push ecx
mov ecx, ebx
call fcn.00414940
mov ebp, eax
mov ebx, dword [esp + 0xb8]
mov byte [esp + 0xa8], 0x23
cmp ebx, ebp
je 0x4c9c59
mov eax, dword [ebx + 4]
lea esi, [ebx + 4]
test eax, eax
je 0x4c9c48
push eax
mov ecx, esi
call fcn.00411610
mov eax, dword [ebp + 4]
test eax, eax
mov dword [esi], eax
je 0x4c9c53
inc dword [eax]
mov edx, dword [ebp + 8]
mov dword [ebx + 8], edx
lea ecx, [esp + 0x88]
lea eax, [esp + 0x8c]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 3
and ecx, eax
call fcn.0042bdc0
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4c9c8c
push eax
lea ecx, [esp + 0x28]
call fcn.00411610
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [esp + 0x24], eax
je 0x4c9c9a
inc dword [eax]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x20]
call fcn.00414a80
lea ecx, [esp + 0x24]
call fcn.004133e0
mov ebp, dword [esp + 0x64]
lea edx, [esp + 0x20]
push edi
push edx
mov ecx, ebp
call fcn.0043f780
test al, al
je 0x4c9ce2
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax + 0x44]
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x68]
test eax, eax
jbe 0x4c9ce2
mov byte [esp + 0x13], 1
push 0x45
lea ecx, [esp + 0x28]
call fcn.004122c0
mov al, byte [esp + 0x13]
test al, al
jne 0x4c9f6c
lea eax, [esp + 0x20]
push edi
push eax
mov ecx, ebp
call fcn.0043f780
test al, al
je 0x4c9d22
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx + 0x44]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x68]
test eax, eax
ja 0x4c9f6c
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4c9d34
push eax
lea ecx, [esp + 0x28]
call fcn.00411610
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [esp + 0x24], eax
je 0x4c9d42
inc dword [eax]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x24]
call fcn.004133e0
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x4c9d71
mov esi, dword [ecx + 8]
test esi, esi
je 0x4c9d71
dec esi
test esi, esi
jbe 0x4c9db0
test ecx, ecx
jne 0x4c9d75
mov byte [esp + 0x2c], cl
jmp 0x4c9d99
xor esi, esi
jmp 0x4c9db0
lea ecx, [esp + 0x24]
call fcn.00404a70
cmp esi, eax
jb 0x4c9d8d
mov ecx, dword [esp + 0x24]
mov byte [esp + 0x2c], 0
jmp 0x4c9d99
mov ecx, dword [esp + 0x24]
mov dl, byte [esi + ecx + 0xc]
mov byte [esp + 0x2c], dl
mov eax, dword [esp + 0x2c]
and eax, 0xff
mov dl, byte [eax + eax*4 + 0x5c9c1c]
test dl, dl
jne 0x4c9db0
dec esi
jne 0x4c9d67
test ecx, ecx
jne 0x4c9db8
xor al, al
jmp 0x4c9dd5
lea ecx, [esp + 0x24]
call fcn.00404a70
cmp esi, eax
jb 0x4c9dcd
mov ecx, dword [esp + 0x24]
xor al, al
jmp 0x4c9dd5
mov ecx, dword [esp + 0x24]
mov al, byte [esi + ecx + 0xc]
movsx eax, al
add eax, 0x3c
cmp eax, 0x91
ja case.0x4c9dee.56
xor edx, edx
mov dl, byte [eax + 0x4ca2fc]
jmp dword [edx*4 + 0x4ca2e8]
test ecx, ecx
jne 0x4c9e0e
push 1
lea ecx, [esp + 0x28]
call fcn.004119f0
mov eax, dword [esp + 0x24]
mov byte [eax + 0xc], 0
jmp 0x4c9e1b
mov ecx, dword [ecx + 4]
push ecx
lea ecx, [esp + 0x28]
call fcn.004119f0
mov eax, dword [esp + 0x24]
cmp esi, dword [eax + 8]
jae case.0x4c9dee.56
jmp 0x4c9ef0
test ecx, ecx
jne 0x4c9e46
push 1
lea ecx, [esp + 0x28]
call fcn.004119f0
mov edx, dword [esp + 0x24]
mov byte [edx + 0xc], 0
jmp 0x4c9e53
mov eax, dword [ecx + 4]
lea ecx, [esp + 0x24]
push eax
call fcn.004119f0
mov eax, dword [esp + 0x24]
cmp esi, dword [eax + 8]
jae case.0x4c9dee.56
mov byte [esi + eax + 0xc], 0x4f
jmp case.0x4c9dee.56
test ecx, ecx
jne 0x4c9e83
push 1
lea ecx, [esp + 0x28]
call fcn.004119f0
mov ecx, dword [esp + 0x24]
mov byte [ecx + 0xc], 0
jmp 0x4c9e90
mov edx, dword [ecx + 4]
lea ecx, [esp + 0x24]
push edx
call fcn.004119f0
mov eax, dword [esp + 0x24]
cmp esi, dword [eax + 8]
jae case.0x4c9dee.56
mov byte [esi + eax + 0xc], 0x55
jmp case.0x4c9dee.56
test esi, esi
jbe case.0x4c9dee.56
dec esi
test ecx, ecx
je case.0x4c9dee.56
lea ecx, [esp + 0x24]
call fcn.00404a70
cmp esi, eax
jae case.0x4c9dee.56
mov eax, dword [esp + 0x24]
cmp byte [esi + eax + 0xc], 0xc4
jne case.0x4c9dee.56
test eax, eax
jne 0x4c9eda
push 1
lea ecx, [esp + 0x28]
call fcn.004119f0
mov eax, dword [esp + 0x24]
mov byte [eax + 0xc], 0
jmp 0x4c9ee7
mov ecx, dword [eax + 4]
push ecx
lea ecx, [esp + 0x28]
call fcn.004119f0
mov eax, dword [esp + 0x24]
cmp esi, dword [eax + 8]
jae case.0x4c9dee.56
mov byte [esi + eax + 0xc], 0x41
lea ecx, [esp + 0x20]
call fcn.00414a80
lea edx, [esp + 0x20]
push edi
push edx
mov ecx, ebp
call fcn.0043f780
test al, al
je 0x4c9f28
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax + 0x44]
mov edx, dword [edi]
mov ecx, edi
call dword [edx + 0x68]
test eax, eax
jbe 0x4c9f28
mov byte [esp + 0x13], 1
push 0x45
lea ecx, [esp + 0x28]
call fcn.004122c0
mov al, byte [esp + 0x13]
test al, al
jne 0x4c9f6c
lea eax, [esp + 0x20]
push edi
push eax
mov ecx, ebp
call fcn.0043f780
test al, al
je 0x4ca173
mov edx, dword [edi]
push 1
mov ecx, edi
call dword [edx + 0x44]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x68]
test eax, eax
jbe 0x4ca173
mov ebp, dword [esp + 0x64]
mov edx, dword [edi]
lea eax, [esp + 0x2c]
push eax
mov ecx, edi
call dword [edx + 0x6c]
mov ebx, dword [esp + 0xb4]
push eax
mov byte [esp + 0xac], 0x24
lea esi, [ebx + 4]
mov ecx, esi
call fcn.00404a90
mov eax, dword [esp + 0x2c]
mov byte [esp + 0xa8], 3
test eax, eax
je 0x4c9fac
push eax
lea ecx, [esp + 0x30]
call fcn.00411610
lea ecx, [esp + 0x20]
mov dword [esp + 0x2c], 0
cmp ecx, ebx
je 0x4c9fe1
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4c9fce
push eax
lea ecx, [esp + 0x28]
call fcn.00411610
mov esi, dword [esi]
test esi, esi
mov dword [esp + 0x24], esi
je 0x4c9fda
inc dword [esi]
mov edx, dword [ebx + 8]
mov dword [esp + 0x28], edx
lea ecx, [esp + 0x20]
call fcn.00414a80
lea ecx, [esp + 0x24]
call fcn.004133e0
lea eax, [esp + 0x20]
push edi
push eax
mov ecx, ebp
call fcn.0043f780
push 0
lea ecx, [esp + 0x8c]
call fcn.0041eae0
mov al, byte [esp + 0x33]
mov byte [esp + 0xa8], 0x25
test al, al
je 0x4ca0e9
mov edx, dword [edi]
mov ecx, edi
xor esi, esi
call dword [edx + 0x68]
test eax, eax
jbe 0x4ca0e9
mov eax, dword [edi]
push esi
mov ecx, edi
call dword [eax + 0x84]
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x68]
push eax
lea ecx, [esp + 0x8c]
call fcn.0041ec20
push 1
lea ecx, [esp + 0x8c]
call fcn.0046e6b0
test al, al
je 0x4ca074
push 4
push 1
lea ecx, [esp + 0x90]
call fcn.0046e790
push 1
lea ecx, [esp + 0x8c]
call fcn.0046e6b0
test al, al
je 0x4ca096
push 4
push 2
lea ecx, [esp + 0x90]
call fcn.0046e790
push 1
lea ecx, [esp + 0x8c]
call fcn.0046e6b0
test al, al
je 0x4ca0b8
push 4
push 3
lea ecx, [esp + 0x90]
call fcn.0046e790
mov eax, dword [edi]
push esi
mov ecx, edi
call dword [eax + 0x84]
mov edx, dword [eax]
lea ecx, [esp + 0x88]
push ecx
mov ecx, eax
call dword [edx + 0x68]
mov ecx, eax
call fcn.0041ec20
mov eax, dword [edi]
mov ecx, edi
inc esi
call dword [eax + 0x68]
cmp esi, eax
jb 0x4ca033
lea ecx, [esp + 0x88]
mov byte [esp + 0xa8], 3
call fcn.0041ebf0
lea ecx, [esp + 0x40]
lea edx, [esp + 0x44]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 2
and ecx, edx
call fcn.0042bdc0
lea ecx, [esp + 0x34]
lea eax, [esp + 0x38]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 1
and ecx, eax
call fcn.0042bdc0
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 0
and ecx, edx
call fcn.0042bdc0
lea ecx, [esp + 0x20]
lea eax, [esp + 0x24]
neg ecx
sbb ecx, ecx
mov dword [esp + 0xa8], 0xffffffff
and ecx, eax
call fcn.0042bdc0
mov al, 1
jmp 0x4ca1f3
lea ecx, [esp + 0x40]
lea edx, [esp + 0x44]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 2
and ecx, edx
call fcn.0042bdc0
lea ecx, [esp + 0x34]
lea eax, [esp + 0x38]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 1
and ecx, eax
call fcn.0042bdc0
lea ecx, [esp + 0x14]
lea edx, [esp + 0x18]
neg ecx
sbb ecx, ecx
mov byte [esp + 0xa8], 0
and ecx, edx
call fcn.0042bdc0
lea esi, [esp + 0x20]
lea eax, [esp + 0x24]
neg esi
sbb esi, esi
mov dword [esp + 0xa8], 0xffffffff
and esi, eax
mov eax, dword [esi]
test eax, eax
je 0x4ca1eb
push eax
mov ecx, esi
call fcn.00411610
mov dword [esi], 0
xor al, al
mov ecx, dword [esp + 0xa0]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x9c
ret 0xc