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

Disassembly:
push 0xffffffffffffffff
push 0x68bcc1
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x14c
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x14], esi
mov al, byte [esp + 0x13]
xor ebp, ebp
push ebp
lea ecx, [esp + 0x30]
mov dword [esp + 0x168], ebp
mov byte [esp + 0x30], al
call fcn.004031c0
mov al, byte [esp + 0x16c]
mov byte [esp + 0x164], 1
test al, al
je 0x4d46fb
cmp al, 1
je 0x4d46fb
cmp al, 4
jne 0x4d4701
mov dword [esi + 0xe0], ebp
test al, al
jne 0x4d47bf
push ebp
mov ecx, esi
call fcn.004d42f0
cmp eax, 0xffffffff
jne 0x4d476a
mov cl, byte [esp + 0x13]
push ebp
mov byte [esp + 0x1c], cl
lea ecx, [esp + 0x1c]
call fcn.004031c0
lea edx, [esp + 0x18]
mov byte [esp + 0x164], 2
push edx
push 0x8fd
call fcn.00615080
mov ecx, dword [0x8189b8]
add esp, 8
lea eax, [esp + 0x18]
push 0xff9b9bff
push eax
call fcn.005d7250
push 1
lea ecx, [esp + 0x1c]
mov byte [esp + 0x168], 1
call fcn.004031c0
mov ecx, dword [0x8189b8]
mov ecx, dword [ecx + 0x6c]
cmp ecx, ebp
je 0x4d477c
call fcn.004e2d10
mov edx, dword [0x8189b8]
mov ecx, dword [edx + 0x70]
cmp ecx, ebp
je 0x4d478e
call fcn.004df360
push 1
lea ecx, [esp + 0x30]
mov byte [esp + 0x168], 0
call fcn.004031c0
push 1
lea ecx, [esp + 0x18c]
mov dword [esp + 0x168], 0xffffffff
call fcn.004031c0
jmp 0x4d5a85
cmp al, 2
jne 0x4d4aab
mov eax, dword [0x818794]
lea ecx, [esp + 0x2c]
push ecx
push 0x17b3
lea esi, [eax + 0x7d8]
mov dword [esp + 0x54], esi
call fcn.00615080
mov eax, dword [esp + 0x38]
add esp, 8
cmp eax, ebp
jne 0x4d47f5
mov eax, 0x6a3560
mov ebp, dword [esp + 0x178]
mov edi, dword [esi + 0x38]
mov edx, ebp
sub edx, edi
push edx
push eax
lea eax, [esp + 0x60]
push eax
call fcn.0067429f
mov cl, byte [esp + 0x1f]
add esp, 0xc
mov byte [esp + 0x3c], cl
lea ecx, [esp + 0x3c]
push 0
call fcn.004031c0
lea edi, [esp + 0x58]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [esp + 0x40]
push ebx
call fcn.00403350
test al, al
je 0x4d486b
mov edi, dword [esp + 0x40]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0x58]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x40]
call fcn.00403330
mov esi, dword [esp + 0x4c]
mov ecx, dword [0x8189b8]
lea eax, [esp + 0x3c]
push 0xff9b9bff
push eax
mov byte [esp + 0x16c], 3
call fcn.005d7250
push 1
lea ecx, [esp + 0x40]
mov byte [esp + 0x168], 1
call fcn.004031c0
mov cl, byte [esp + 0x13]
mov dword [esi + 0x38], ebp
mov byte [esp + 0x18], cl
push 0
lea ecx, [esp + 0x1c]
call fcn.004031c0
mov eax, dword [0x8189b8]
mov byte [esp + 0x164], 4
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x4d48fe
lea edx, [esp + 0x3c]
push ebp
push edx
call fcn.004a4cd0
mov ecx, dword [0x6a3564]
mov byte [esp + 0x164], 5
push ecx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.00402fc0
push 1
lea ecx, [esp + 0x40]
mov byte [esp + 0x168], 4
call fcn.004031c0
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x40]
mov byte [esp + 0x40], dl
call fcn.004031c0
mov edi, 0x6d4760
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [esp + 0x40]
push ebx
call fcn.00403350
test al, al
je 0x4d4955
mov edi, dword [esp + 0x40]
mov ecx, ebx
mov eax, ecx
mov esi, 0x6d4760
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x40]
call fcn.00403330
mov ebx, dword [esp + 0x14]
mov edx, dword [0x8189b8]
lea ecx, [esp + 0x3c]
push ecx
mov byte [esp + 0x168], 6
mov ecx, dword [edx + 0x3c]
call fcn.00402320
push 1
lea ecx, [esp + 0x40]
mov esi, eax
mov byte [esp + 0x168], 4
call fcn.004031c0
test esi, esi
je 0x4d4999
mov eax, dword [esi]
lea ecx, [esp + 0x18]
push ecx
mov ecx, esi
call dword [eax + 0x78]
mov al, byte [ebx + 0xa0]
test al, al
je 0x4d49eb
mov edx, dword [esp + 0x170]
mov eax, dword [ebx + 0xd4]
cmp edx, eax
jne 0x4d4a66
xor edi, edi
lea ecx, [ebx + 0xb4]
mov eax, dword [ecx]
test eax, eax
je 0x4d49d1
mov eax, dword [eax + 0x30]
cmp dword [eax], 0x35a4e900
je 0x4d49dc
inc edi
add ecx, 4
cmp edi, 6
jl 0x4d49c0
jmp 0x4d49eb
mov ebx, dword [esp + 0x14]
mov esi, dword [ebx + edi*4 + 0xb4]
test esi, esi
jne 0x4d4a03
push 1
lea ecx, [esp + 0x1c]
mov byte [esp + 0x168], 1
call fcn.004031c0
jmp 0x4d478e
mov ecx, dword [esi]
push ecx
mov ecx, ebx
call fcn.00401550
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx]
mov ecx, dword [esi]
test ecx, ecx
je 0x4d4a20
mov eax, dword [ecx]
push 1
call dword [eax + 4]
mov dword [esi], 0
mov dword [esp + 0x28], esi
push 1
lea ecx, [esi + 0x20]
mov byte [esp + 0x168], 7
call fcn.004031c0
push 1
lea ecx, [esi + 4]
mov byte [esp + 0x168], 4
call fcn.004031c0
push esi
call fcn.006713a0
mov dword [ebx + edi*4 + 0xb4], 0
mov ebx, dword [esp + 0x18]
add esp, 4
mov edx, dword [ebx]
mov ecx, ebx
call dword [edx + 0xa0]
mov eax, dword [0x8189b8]
mov ecx, dword [eax + 0x6c]
test ecx, ecx
je 0x4d4a81
call fcn.004e2d10
mov ecx, dword [0x8189b8]
mov ecx, dword [ecx + 0x70]
test ecx, ecx
je 0x4d4a93
call fcn.004df360
push 1
lea ecx, [esp + 0x1c]
mov byte [esp + 0x168], 1
call fcn.004031c0
jmp 0x4d59d0
cmp al, 3
jne 0x4d4db0
mov al, byte [esi + 0xe8]
test al, al
je 0x4d4ac9
mov byte [esi + 0xe8], 0
jmp 0x4d478e
mov ebp, dword [esp + 0x174]
mov eax, 0x10624dd3
imul ebp
sar edx, 6
mov eax, edx
mov esi, dword [0x8186f4]
shr eax, 0x1f
add edx, eax
xor edi, edi
lea eax, [edx + edx*4]
lea edx, [esp + 0x4c]
push edx
lea eax, [eax + eax*4]
lea ecx, [eax + eax*4]
lea eax, [esp + 0x58]
shl ecx, 3
mov dword [esp + 0x50], ecx
push eax
lea ecx, [esi + 0x14]
call fcn.004532a0
mov esi, dword [esi + 0x18]
mov eax, dword [esp + 0x54]
cmp eax, esi
je 0x4d4d9d
lea ebx, [eax + 0x10]
test ebx, ebx
je 0x4d4d9d
mov cl, byte [ebx + 4]
cmp cl, 0x18
jae 0x4d4b6c
mov eax, ebp
mov esi, 0x3e8
cdq
idiv esi
and ecx, 0xff
mov esi, dword [ecx*4 + 0x8186f8]
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esi + 0x14]
mov dword [esp + 0x54], edx
lea edx, [esp + 0x2c]
push edx
call fcn.00453310
mov esi, dword [esi + 0x18]
mov edi, dword [esp + 0x28]
cmp edi, esi
jne 0x4d4b69
xor edi, edi
jmp 0x4d4b6c
add edi, 0x10
test edi, edi
je 0x4d4d9d
mov al, byte [edi + 0x34]
cmp al, 4
je 0x4d4b7f
cmp al, 6
jne 0x4d4bc4
lea eax, [esp + 0x2c]
push eax
push 0xd55
call fcn.00615080
mov edi, dword [edi + 8]
add esp, 8
test edi, edi
jne 0x4d4b9d
mov edi, 0x6a3560
mov ecx, dword [esp + 0x18c]
test ecx, ecx
jne 0x4d4bad
mov ecx, 0x6a3560
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x4d4bba
mov eax, 0x6a3560
push edi
push ecx
lea ecx, [esp + 0x60]
push eax
push ecx
jmp 0x4d4c07
lea edx, [esp + 0x2c]
push edx
push 0xd55
call fcn.00615080
mov eax, dword [ebx + 0xc]
add esp, 8
test eax, eax
jne 0x4d4be2
mov eax, 0x6a3560
mov edx, dword [esp + 0x18c]
test edx, edx
jne 0x4d4bf2
mov edx, 0x6a3560
mov ecx, dword [esp + 0x30]
test ecx, ecx
jne 0x4d4bff
mov ecx, 0x6a3560
push eax
push edx
lea eax, [esp + 0x60]
push ecx
push eax
call fcn.0067429f
mov cl, byte [esp + 0x23]
add esp, 0x10
mov byte [esp + 0x18], cl
lea ecx, [esp + 0x18]
push 0
call fcn.004031c0
lea edi, [esp + 0x58]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [esp + 0x1c]
push ebx
call fcn.00403350
test al, al
je 0x4d4c64
mov edi, dword [esp + 0x1c]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0x58]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1c]
call fcn.00403330
mov ecx, dword [0x8189b8]
lea eax, [esp + 0x18]
push 0xff9b9bff
push eax
mov byte [esp + 0x16c], 9
call fcn.005d7250
push 1
lea ecx, [esp + 0x1c]
mov byte [esp + 0x168], 1
call fcn.004031c0
mov ebx, dword [esp + 0x14]
mov al, byte [ebx + 0xa0]
test al, al
je 0x4d478e
mov ecx, dword [esp + 0x170]
mov eax, dword [ebx + 0xd4]
cmp ecx, eax
jne 0x4d4d75
xor edi, edi
lea ecx, [ebx + 0xb4]
mov eax, dword [ecx]
test eax, eax
je 0x4d4cd9
mov edx, dword [eax + 0x34]
mov eax, dword [eax + 0x30]
mov edx, dword [edx]
mov esi, dword [eax]
add edx, esi
cmp edx, ebp
je 0x4d4ce7
inc edi
add ecx, 4
cmp edi, 6
jl 0x4d4cc3
jmp 0x4d478e
mov eax, dword [ebx + edi*4 + 0xb4]
test eax, eax
je 0x4d4d00
mov eax, dword [eax + 0x30]
mov edx, dword [ebx]
push eax
mov ecx, ebx
call dword [edx + 0x9c]
mov esi, dword [ebx + edi*4 + 0xb4]
test esi, esi
je 0x4d478e
mov ecx, dword [esi]
push ecx
mov ecx, ebx
call fcn.00401550
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx]
mov ecx, dword [esi]
test ecx, ecx
je 0x4d4d2c
mov eax, dword [ecx]
push 1
call dword [eax + 4]
mov dword [esi], 0
mov dword [esp + 0x28], esi
push 1
lea ecx, [esi + 0x20]
mov byte [esp + 0x168], 0xa
call fcn.004031c0
push 1
lea ecx, [esi + 4]
mov byte [esp + 0x168], 1
call fcn.004031c0
push esi
call fcn.006713a0
mov dword [ebx + edi*4 + 0xb4], 0
add esp, 4
mov byte [ebx + 0xe9], 1
mov ecx, dword [0x8189b8]
mov ecx, dword [ecx + 0x6c]
test ecx, ecx
je 0x4d4d87
call fcn.004e2d10
mov edx, dword [0x8189b8]
mov ecx, dword [edx + 0x70]
test ecx, ecx
je 0x4d478e
jmp 0x4d4789
push ebp
push 0x6d53a0
call fcn.0044a330
add esp, 8
jmp 0x4d478e
cmp al, 4
jne 0x4d4e6f
mov al, byte [esi + 0xe9]
test al, al
je 0x4d4dce
mov byte [esi + 0xe9], 0
jmp 0x4d478e
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 0xe4]
mov esi, dword [edi + eax*4 + 0xb4]
test esi, esi
je 0x4d4e37
mov ecx, dword [esi]
push ecx
mov ecx, edi
call fcn.00401550
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx]
mov ecx, dword [esi]
test ecx, ecx
je 0x4d4e00
mov eax, dword [ecx]
push 1
call dword [eax + 4]
mov dword [esi], 0
mov dword [esp + 0x28], esi
push 1
lea ecx, [esi + 0x20]
mov byte [esp + 0x168], 0xc
call fcn.004031c0
push 1
lea ecx, [esi + 4]
mov byte [esp + 0x168], 1
call fcn.004031c0
push esi
call fcn.006713a0
add esp, 4
mov ecx, dword [edi + 0xe4]
mov dword [edi + ecx*4 + 0xb4], 0
mov edx, dword [0x8189b8]
mov ecx, dword [edx + 0x6c]
test ecx, ecx
je 0x4d4e5a
call fcn.004e2d10
mov eax, dword [0x8189b8]
mov ecx, dword [eax + 0x70]
test ecx, ecx
je 0x4d478e
jmp 0x4d4789
cmp al, 5
jne 0x4d516b
mov ebx, dword [esp + 0x174]
cmp ebx, 0x35a4e900
jne 0x4d4ea0
mov ecx, dword [esp + 0x17c]
push ecx
push 0x6d5368
call fcn.0044a330
add esp, 8
jmp 0x4d478e
mov edi, dword [esp + 0x17c]
cmp edi, ebp
jl 0x4d5158
cmp edi, 0x1b
jg 0x4d5158
mov edx, dword [0x8189b8]
mov eax, dword [edx + 0x3c]
mov esi, dword [eax + edi*4 + 0x13c]
test esi, esi
je 0x4d4f85
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 0x30]
mov eax, dword [ecx]
mov ebp, dword [edx]
add eax, ebp
cmp ebx, eax
je 0x4d4f5a
mov ecx, dword [esi]
mov ebp, dword [esp + 0x14]
push ecx
mov ecx, ebp
call fcn.00401550
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx]
mov ecx, dword [esi]
test ecx, ecx
je 0x4d4f01
mov eax, dword [ecx]
push 1
call dword [eax + 4]
mov dword [esi], 0
mov dword [esp + 0x28], esi
push 1
lea ecx, [esi + 0x20]
mov byte [esp + 0x168], 0xe
call fcn.004031c0
push 1
lea ecx, [esi + 4]
mov byte [esp + 0x168], 1
call fcn.004031c0
push esi
call fcn.006713a0
mov ecx, dword [0x8189b8]
mov eax, dword [esp + 0x184]
add esp, 4
mov edx, dword [ecx + 0x3c]
mov ecx, ebp
push edi
push eax
mov dword [edx + edi*4 + 0x13c], 0
push ebx
jmp 0x4d4f93
mov ecx, dword [esp + 0x180]
mov dword [esi + 0x38], ecx
mov eax, dword [0x8189b8]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0x3c]
mov edx, dword [ecx]
mov eax, dword [eax + edi*4 + 0x13c]
mov eax, dword [eax + 0x30]
push eax
call dword [edx + 0x9c]
jmp 0x4d4f98
mov ecx, dword [esp + 0x180]
push edi
push ecx
mov ecx, dword [esp + 0x1c]
push ebx
call fcn.004d3f40
mov eax, 0x10624dd3
mov esi, dword [0x8186f4]
imul ebx
sar edx, 6
mov eax, edx
xor edi, edi
shr eax, 0x1f
add edx, eax
lea eax, [edx + edx*4]
lea edx, [esp + 0x28]
push edx
lea eax, [eax + eax*4]
lea ecx, [eax + eax*4]
lea eax, [esp + 0x54]
shl ecx, 3
mov dword [esp + 0x2c], ecx
push eax
lea ecx, [esi + 0x14]
call fcn.004532a0
mov esi, dword [esi + 0x18]
mov eax, dword [esp + 0x50]
cmp eax, esi
je 0x4d5145
lea ebp, [eax + 0x10]
test ebp, ebp
je 0x4d5145
mov cl, byte [ebp + 4]
cmp cl, 0x18
jae 0x4d5034
mov eax, ebx
mov esi, 0x3e8
cdq
idiv esi
and ecx, 0xff
mov esi, dword [ecx*4 + 0x8186f8]
lea ecx, [esp + 0x54]
push ecx
lea ecx, [esi + 0x14]
mov dword [esp + 0x58], edx
lea edx, [esp + 0x50]
push edx
call fcn.00453310
mov esi, dword [esi + 0x18]
mov edi, dword [esp + 0x4c]
cmp edi, esi
jne 0x4d5031
xor edi, edi
jmp 0x4d5034
add edi, 0x10
xor esi, esi
cmp edi, esi
je 0x4d5145
lea eax, [esp + 0x2c]
push eax
push 0x17b5
call fcn.00615080
mov al, byte [edi + 0x34]
add esp, 8
cmp al, 4
je 0x4d505b
cmp al, 6
jne 0x4d507d
mov edi, dword [edi + 8]
cmp edi, esi
jne 0x4d5067
mov edi, 0x6a3560
mov eax, dword [esp + 0x30]
cmp eax, esi
jne 0x4d5074
mov eax, 0x6a3560
push edi
lea ecx, [esp + 0x5c]
push eax
push ecx
jmp 0x4d509d
mov eax, dword [ebp + 0xc]
cmp eax, esi
jne 0x4d5089
mov eax, 0x6a3560
mov ecx, dword [esp + 0x30]
cmp ecx, esi
jne 0x4d5096
mov ecx, 0x6a3560
push eax
lea edx, [esp + 0x5c]
push ecx
push edx
call fcn.0067429f
mov al, byte [esp + 0x1f]
lea edi, [esp + 0x64]
mov byte [esp + 0x24], al
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x1c], esi
push ecx
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
call fcn.004083a0
mov ecx, dword [0x8189b8]
lea edx, [esp + 0x18]
push 0xff9b9bff
push edx
mov byte [esp + 0x16c], 0x10
call fcn.005d7250
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x164], 1
cmp ecx, esi
je 0x4d511e
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x4d5115
cmp al, 0xff
je 0x4d5115
dec al
mov byte [ecx], al
jmp 0x4d511e
push ecx
call fcn.006713a0
add esp, 4
mov eax, dword [0x8189b8]
mov ecx, dword [eax + 0x6c]
cmp ecx, esi
je 0x4d512f
call fcn.004e2d10
mov ecx, dword [0x8189b8]
mov ecx, dword [ecx + 0x70]
cmp ecx, esi
je 0x4d59d0
jmp 0x4d59cb
push ebx
push 0x6d53a0
call fcn.0044a330
add esp, 8
jmp 0x4d478e
push edi
push 0x6d5328
call fcn.0044a330
add esp, 8
jmp 0x4d478e
cmp al, 6
jne 0x4d51dd
mov dl, byte [esp + 0x13]
mov dword [esp + 0x1c], ebp
mov byte [esp + 0x18], dl
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
lea eax, [esp + 0x18]
mov byte [esp + 0x164], 0x11
push eax
push 0x6ac
call fcn.00615080
add esp, 8
lea ecx, [esp + 0x18]
push 0xffff3b3b
push ecx
mov ecx, dword [0x8189b8]
call fcn.005d7250
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x164], 1
cmp eax, ebp
je 0x4d59d0
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4d524f
cmp al, 0xff
je 0x4d524f
dec al
mov byte [ecx], al
jmp 0x4d59d0
cmp al, 7
jne 0x4d525d
mov dl, byte [esp + 0x13]
mov dword [esp + 0x1c], ebp
mov byte [esp + 0x18], dl
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
lea eax, [esp + 0x18]
mov byte [esp + 0x164], 0x12
push eax
push 0x8fd
call fcn.00615080
add esp, 8
lea ecx, [esp + 0x18]
push 0xffff3b3b
push ecx
mov ecx, dword [0x8189b8]
call fcn.005d7250
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x164], 1
cmp eax, ebp
je 0x4d59d0
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4d524f
cmp al, 0xff
je 0x4d524f
dec al
mov byte [ecx], al
jmp 0x4d59d0
push ecx
call fcn.006713a0
add esp, 4
jmp 0x4d59d0
cmp al, 1
jne 0x4d59d0
mov ebx, dword [esp + 0x174]
cmp ebx, 0x35a4e900
je 0x4d562f
mov edi, dword [esp + 0x17c]
xor esi, esi
cmp edi, esi
jl 0x4d55fd
cmp edi, 0x1b
jg 0x4d55fd
mov edx, dword [0x8189b8]
mov eax, dword [edx + 0x3c]
mov esi, dword [eax + edi*4 + 0x13c]
test esi, esi
je 0x4d535f
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 0x30]
mov eax, dword [ecx]
mov ebp, dword [edx]
add eax, ebp
cmp ebx, eax
je 0x4d5334
mov ecx, dword [esi]
mov ebp, dword [esp + 0x14]
push ecx
mov ecx, ebp
call fcn.00401550
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx]
mov ecx, dword [esi]
test ecx, ecx
je 0x4d52db
mov eax, dword [ecx]
push 1
call dword [eax + 4]
mov dword [esi], 0
mov dword [esp + 0x28], esi
push 1
lea ecx, [esi + 0x20]
mov byte [esp + 0x168], 0x13
call fcn.004031c0
push 1
lea ecx, [esi + 4]
mov byte [esp + 0x168], 1
call fcn.004031c0
push esi
call fcn.006713a0
mov ecx, dword [0x8189b8]
mov eax, dword [esp + 0x184]
add esp, 4
mov edx, dword [ecx + 0x3c]
mov ecx, ebp
push edi
push eax
mov dword [edx + edi*4 + 0x13c], 0
push ebx
jmp 0x4d536d
mov ecx, dword [esp + 0x180]
mov dword [esi + 0x38], ecx
mov eax, dword [0x8189b8]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + 0x3c]
mov edx, dword [ecx]
mov eax, dword [eax + edi*4 + 0x13c]
mov eax, dword [eax + 0x30]
push eax
call dword [edx + 0x9c]
jmp 0x4d5372
mov ecx, dword [esp + 0x180]
push edi
push ecx
mov ecx, dword [esp + 0x1c]
push ebx
call fcn.004d3f40
mov eax, 0x10624dd3
mov esi, dword [0x8186f4]
imul ebx
sar edx, 6
mov eax, edx
xor edi, edi
shr eax, 0x1f
add edx, eax
lea eax, [edx + edx*4]
lea edx, [esp + 0x28]
push edx
lea eax, [eax + eax*4]
lea ecx, [eax + eax*4]
lea eax, [esp + 0x54]
shl ecx, 3
mov dword [esp + 0x2c], ecx
push eax
lea ecx, [esi + 0x14]
call fcn.004532a0
mov esi, dword [esi + 0x18]
mov eax, dword [esp + 0x50]
cmp eax, esi
je 0x4d559b
lea ebp, [eax + 0x10]
test ebp, ebp
je 0x4d559b
mov cl, byte [ebp + 4]
cmp cl, 0x18
jae 0x4d540a
mov eax, ebx
mov esi, 0x3e8
cdq
idiv esi
and ecx, 0xff
mov esi, dword [ecx*4 + 0x8186f8]
lea ecx, [esp + 0x54]
push ecx
lea ecx, [esi + 0x14]
mov dword [esp + 0x58], edx
lea edx, [esp + 0x50]
push edx
call fcn.00453310
mov esi, dword [esi + 0x18]
mov eax, dword [esp + 0x4c]
cmp eax, esi
je 0x4d540a
lea edi, [eax + 0x10]
xor esi, esi
cmp edi, esi
je 0x4d559b
lea eax, [esp + 0x2c]
push eax
push 0x17b5
call fcn.00615080
mov al, byte [edi + 0x34]
add esp, 8
cmp al, 4
je 0x4d5431
cmp al, 6
jne 0x4d5453
mov edi, dword [edi + 8]
cmp edi, esi
jne 0x4d543d
mov edi, 0x6a3560
mov eax, dword [esp + 0x30]
cmp eax, esi
jne 0x4d544a
mov eax, 0x6a3560
push edi
lea ecx, [esp + 0x5c]
push eax
push ecx
jmp 0x4d5473
mov eax, dword [ebp + 0xc]
cmp eax, esi
jne 0x4d545f
mov eax, 0x6a3560
mov ecx, dword [esp + 0x30]
cmp ecx, esi
jne 0x4d546c
mov ecx, 0x6a3560
push eax
lea edx, [esp + 0x5c]
push ecx
push edx
call fcn.0067429f
mov al, byte [esp + 0x1f]
lea edi, [esp + 0x64]
mov byte [esp + 0x24], al
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x1c], esi
push ecx
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
call fcn.004083a0
mov ecx, dword [0x8189b8]
lea edx, [esp + 0x18]
push 0xff9b9bff
push edx
mov byte [esp + 0x16c], 0x15
call fcn.005d7250
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x164], 1
cmp eax, esi
je 0x4d54f6
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4d54ed
cmp al, 0xff
je 0x4d54ed
dec al
mov byte [ecx], al
jmp 0x4d54f6
push ecx
call fcn.006713a0
add esp, 4
mov edi, dword [esp + 0x14]
xor ebx, ebx
mov eax, dword [edi + 0xe4]
mov esi, dword [edi + eax*4 + 0xb4]
cmp esi, ebx
je 0x4d5580
mov ecx, dword [esi]
push ecx
mov ecx, edi
call fcn.00401550
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx]
mov ecx, dword [esi]
cmp ecx, ebx
je 0x4d552a
mov eax, dword [ecx]
push 1
call dword [eax + 4]
mov dword [esi], ebx
mov dword [esp + 0x28], esi
push 1
lea ecx, [esi + 0x20]
mov byte [esp + 0x168], 0x16
call fcn.004031c0
mov eax, dword [esi + 8]
mov byte [esp + 0x164], 1
cmp eax, ebx
je 0x4d556e
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4d5565
cmp al, 0xff
je 0x4d5565
dec al
mov byte [ecx], al
jmp 0x4d556e
push ecx
call fcn.006713a0
add esp, 4
push esi
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ebx
call fcn.006713a0
add esp, 4
mov ecx, dword [edi + 0xe4]
mov dword [edi + ecx*4 + 0xb4], ebx
mov byte [edi + 0xe8], 1
xor ebx, ebx
jmp 0x4d59ad
push ebx
push 0x6d53a0
call fcn.0044a330
mov eax, dword [esp + 0x38]
xor esi, esi
add esp, 8
cmp eax, esi
mov byte [esp + 0x164], 0
je 0x4d55d8
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4d55cf
cmp al, 0xff
je 0x4d55cf
dec al
mov byte [ecx], al
jmp 0x4d55d8
push ecx
call fcn.006713a0
add esp, 4
mov ecx, dword [esp + 0x18c]
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x164], 0xffffffff
cmp ecx, esi
jmp 0x4d58d3
push edi
push 0x6d5328
call fcn.0044a330
mov eax, dword [esp + 0x38]
add esp, 8
cmp eax, esi
mov byte [esp + 0x164], 0
je 0x4d55d8
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4d55cf
cmp al, 0xff
je 0x4d55cf
dec al
mov byte [ecx], al
jmp 0x4d55d8
mov edx, dword [0x818794]
lea eax, [esp + 0x2c]
push eax
push 0x17b3
lea ebp, [edx + 0x7d8]
call fcn.00615080
mov eax, dword [esp + 0x38]
xor ebx, ebx
add esp, 8
cmp eax, ebx
jne 0x4d565c
mov eax, 0x6a3560
mov esi, dword [esp + 0x178]
mov edi, dword [ebp + 0x38]
mov ecx, esi
lea edx, [esp + 0x58]
sub ecx, edi
push ecx
push eax
push edx
call fcn.0067429f
mov al, byte [esp + 0x1f]
lea edi, [esp + 0x64]
mov byte [esp + 0x48], al
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x40], ebx
push ecx
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0x44]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
call fcn.004083a0
mov ecx, dword [0x8189b8]
lea edx, [esp + 0x3c]
push 0xff9b9bff
push edx
mov byte [esp + 0x16c], 0x18
call fcn.005d7250
mov eax, dword [esp + 0x40]
mov byte [esp + 0x164], 1
cmp eax, ebx
je 0x4d56f4
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4d56eb
cmp al, 0xff
je 0x4d56eb
dec al
mov byte [ecx], al
jmp 0x4d56f4
push ecx
call fcn.006713a0
add esp, 4
mov al, byte [esp + 0x13]
mov dword [ebp + 0x38], esi
mov byte [esp + 0x18], al
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov eax, dword [0x8189b8]
mov byte [esp + 0x164], 0x19
cmp dword [eax + 0x3c], ebx
je 0x4d5772
lea ecx, [esp + 0x3c]
push esi
push ecx
mov ecx, dword [eax + 0x3c]
call fcn.004a4cd0
mov edx, dword [0x6a3564]
lea ecx, [esp + 0x18]
push edx
push ebx
push eax
mov byte [esp + 0x170], 0x1a
call fcn.00402fc0
mov eax, dword [esp + 0x40]
mov byte [esp + 0x164], 0x19
cmp eax, ebx
je 0x4d5772
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4d5769
cmp al, 0xff
je 0x4d5769
dec al
mov byte [ecx], al
jmp 0x4d5772
push ecx
call fcn.006713a0
add esp, 4
mov al, byte [esp + 0x13]
mov edi, 0x6d4760
mov byte [esp + 0x3c], al
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x44], ebx
mov ebp, ecx
lea ecx, [esp + 0x40]
push ebp
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
call fcn.00403350
test al, al
je 0x4d57cc
mov edi, dword [esp + 0x40]
mov ecx, ebp
mov edx, ecx
mov esi, 0x6d4760
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x40]
call fcn.00403330
xor ebx, ebx
mov ecx, dword [0x8189b8]
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x168], 0x1b
mov ecx, dword [ecx + 0x3c]
call fcn.00402320
mov esi, eax
mov eax, dword [esp + 0x40]
cmp eax, ebx
mov byte [esp + 0x164], 0x19
je 0x4d5816
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4d580d
cmp al, 0xff
je 0x4d580d
dec al
mov byte [ecx], al
jmp 0x4d5816
push ecx
call fcn.006713a0
add esp, 4
cmp esi, ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
je 0x4d5832
mov edx, dword [esi]
lea eax, [esp + 0x18]
push eax
mov ecx, esi
call dword [edx + 0x78]
mov edi, dword [esp + 0x14]
xor ebx, ebx
mov ecx, dword [edi + 0xe4]
mov esi, dword [edi + ecx*4 + 0xb4]
cmp esi, ebx
jne 0x4d58f6
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x164], 1
cmp eax, ebx
je 0x4d587a
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4d5871
cmp al, 0xff
je 0x4d5871
dec al
mov byte [ecx], al
jmp 0x4d587a
push ecx
call fcn.006713a0
add esp, 4
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
cmp eax, ebx
mov byte [esp + 0x164], 0
je 0x4d58b3
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4d58aa
cmp al, 0xff
je 0x4d58aa
dec al
mov byte [ecx], al
jmp 0x4d58b3
push ecx
call fcn.006713a0
add esp, 4
mov ecx, dword [esp + 0x18c]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x164], 0xffffffff
cmp ecx, ebx
je 0x4d5a85
mov al, byte [ecx - 1]
test al, al
je 0x4d5a7b
cmp al, 0xff
je 0x4d5a7b
dec al
mov byte [ecx - 1], al
jmp 0x4d5a85
mov edx, dword [esi]
mov ecx, edi
push edx
call fcn.00401550
mov ecx, dword [esi]
mov eax, dword [ecx]
call dword [eax]
mov ecx, dword [esi]
cmp ecx, ebx
je 0x4d5913
mov edx, dword [ecx]
push 1
call dword [edx + 4]
mov dword [esi], ebx
mov dword [esp + 0x28], esi
push 1
lea ecx, [esi + 0x20]
mov byte [esp + 0x168], 0x1c
call fcn.004031c0
mov eax, dword [esi + 8]
mov byte [esp + 0x164], 0x19
cmp eax, ebx
je 0x4d5957
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4d594e
cmp al, 0xff
je 0x4d594e
dec al
mov byte [ecx], al
jmp 0x4d5957
push ecx
call fcn.006713a0
add esp, 4
push esi
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ebx
call fcn.006713a0
mov eax, dword [edi + 0xe4]
add esp, 4
mov ecx, edi
mov dword [edi + eax*4 + 0xb4], ebx
mov edx, dword [edi]
call dword [edx + 0xa0]
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x164], 1
cmp eax, ebx
je 0x4d59ad
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4d59a4
cmp al, 0xff
je 0x4d59a4
dec al
mov byte [ecx], al
jmp 0x4d59ad
push ecx
call fcn.006713a0
add esp, 4
mov eax, dword [0x8189b8]
mov ecx, dword [eax + 0x6c]
cmp ecx, ebx
je 0x4d59be
call fcn.004e2d10
mov ecx, dword [0x8189b8]
mov ecx, dword [ecx + 0x70]
cmp ecx, ebx
je 0x4d59d0
call fcn.004df360
mov esi, dword [esp + 0x14]
xor dl, dl
mov ecx, 6
xor edi, edi
lea eax, [esi + 0xb4]
cmp dword [eax], edi
je 0x4d59e9
mov dl, 1
add eax, 4
dec ecx
jne 0x4d59e3
test dl, dl
jne 0x4d5a1a
mov al, byte [esi + 0xa0]
test al, al
je 0x4d5a05
mov edx, dword [esi]
push edi
mov ecx, esi
call dword [edx + 0x3c]
xor eax, eax
mov dword [esi + 0xcc], eax
mov word [esi + 0xd0], ax
mov dword [esi + 0xe0], edi
mov eax, dword [esp + 0x30]
mov byte [esp + 0x164], 0
cmp eax, edi
je 0x4d5a47
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4d5a3e
cmp al, 0xff
je 0x4d5a3e
dec al
mov byte [ecx], al
jmp 0x4d5a47
push ecx
call fcn.006713a0
add esp, 4
mov ecx, dword [esp + 0x18c]
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
cmp ecx, edi
mov dword [esp + 0x164], 0xffffffff
je 0x4d5a85
mov al, byte [ecx - 1]
test al, al
je 0x4d5a7b
cmp al, 0xff
je 0x4d5a7b
dec al
mov byte [ecx - 1], al
jmp 0x4d5a85
dec ecx
push ecx
call fcn.006713a0
add esp, 4
mov ecx, dword [esp + 0x15c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x158
ret 0x2c