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

Disassembly:
sub esp, 0x70
mov eax, dword [0x519bc0]
xor eax, esp
mov dword [esp + 0x6c], eax
push ebp
push esi
push edi
mov edi, ecx
mov ecx, dword [edi + 0x64b420]
mov eax, dword [edi + 0x649380]
mov edx, dword [eax + 4]
xor esi, esi
lea ebp, [edi + 0x649380]
push esi
push ecx
mov ecx, ebp
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x48], esi
call edx
test al, al
jne 0x4d8856
mov eax, dword [edi + 0x64b420]
push eax
mov ecx, 0x531158
call fcn.0043f910
pop edi
lea eax, [esi + 0x12]
pop esi
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004e6b3a
add esp, 0x70
ret
mov ecx, ebp
call fcn.00444810
cmp edx, esi
jl 0x4d8873
jg 0x4d886a
cmp eax, 0x20000
jbe 0x4d8873
sub eax, 0x20000
sbb edx, esi
jmp 0x4d8877
xor eax, eax
xor edx, edx
push ebx
mov ebx, dword [ebp]
push esi
push edx
mov edx, dword [ebx + 0xc]
push eax
mov ecx, ebp
call edx
push 0x50aac4
push ebp
mov ecx, edi
call fcn.004d5e80
mov ecx, ebp
test eax, eax
jne 0x4d88c6
call fcn.004441a0
mov eax, dword [edi + 0x64b420]
push eax
mov ecx, 0x531158
call fcn.0043f3c0
pop ebx
pop edi
pop esi
mov eax, 3
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004e6b3a
add esp, 0x70
ret
mov edx, dword [ebp]
mov eax, dword [edx + 0x10]
call eax
push 0x50aac4
push ebp
mov ecx, edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
call fcn.004d5e80
test eax, eax
je 0x4d890a
mov edx, dword [ebp]
mov eax, dword [edx + 0x10]
mov ecx, ebp
call eax
push 0x50aac4
push ebp
mov ecx, edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
call fcn.004d5e80
test eax, eax
jne 0x4d88e7
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [ebp]
mov edx, dword [edx + 0xc]
push 0
push eax
push ecx
mov ecx, ebp
call edx
mov eax, dword [ebp]
mov edx, dword [eax + 8]
push 0x12
lea ecx, [esp + 0x4c]
push ecx
mov ecx, ebp
call edx
movzx eax, byte [esp + 0x49]
movzx ecx, byte [esp + 0x48]
movzx edx, byte [esp + 0x4b]
shl ax, 8
movzx eax, ax
or eax, ecx
movzx ecx, byte [esp + 0x4a]
inc eax
mov dword [edi + 0x64b42c], eax
dec eax
mov dword [edi + 0x64b430], eax
shl dx, 8
movzx eax, dx
movzx edx, byte [esp + 0x57]
or eax, ecx
movzx ecx, byte [esp + 0x55]
mov dword [esp + 0x10], eax
movzx eax, byte [esp + 0x56]
shl dx, 8
movzx ebx, dx
or ebx, eax
movzx eax, byte [esp + 0x54]
shl cx, 8
movzx edx, cx
movzx ecx, byte [esp + 0x4f]
shl ebx, 0x10
or ebx, edx
movzx edx, byte [esp + 0x4e]
or ebx, eax
shl cx, 8
or cx, dx
movzx eax, cx
movzx ecx, byte [esp + 0x52]
cdq
mov dword [esp + 0x3c], eax
movzx eax, byte [esp + 0x53]
shl ax, 8
mov dword [esp + 0x28], esi
mov dword [esp + 0x40], edx
movzx edx, byte [esp + 0x51]
movzx esi, ax
or esi, ecx
movzx ecx, byte [esp + 0x50]
shl dx, 8
movzx eax, dx
movzx edx, byte [esp + 0x58]
shl esi, 0x10
or esi, eax
movzx ax, byte [esp + 0x59]
shl ax, 8
or esi, ecx
or ax, dx
mov dword [esp + 0x24], ebx
mov word [edi + 0x64b4b0], ax
je 0x4d8a7d
movzx eax, ax
inc eax
push eax
call fcn.004e7f56
add esp, 4
mov dword [edi + 0x64b4b4], eax
test eax, eax
je 0x4d92eb
movzx ecx, word [edi + 0x64b4b0]
mov edx, dword [ebp]
mov edx, dword [edx + 8]
mov dword [esp + 0x34], ecx
movzx ecx, word [edi + 0x64b4b0]
push ecx
push eax
mov ecx, ebp
call edx
cmp eax, dword [esp + 0x34]
je 0x4d8a6f
mov eax, dword [edi + 0x64b4b4]
push eax
call fcn.004e7061
add esp, 4
mov dword [edi + 0x64b4b4], 0
pop ebx
pop edi
pop esi
mov eax, 2
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004e6b3a
add esp, 0x70
ret
mov ecx, dword [edi + 0x64b4b4]
mov edx, dword [esp + 0x34]
mov byte [edx + ecx], 0
mov eax, dword [esp + 0x3c]
or eax, dword [esp + 0x40]
jne 0x4d8aa3
mov ecx, ebp
call fcn.004441a0
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004e6b3a
add esp, 0x70
ret
cmp dword [edi + 0x64b42c], 1
je 0x4d8aed
cmp dword [edi + 0x648358], 0
jne 0x4d99d3
mov ecx, dword [edi + 0x64b3fc]
push 0x502284
push ecx
call fcn.004536e0
test al, al
jne 0x4d8aed
mov ecx, ebp
call fcn.004441a0
pop ebx
pop edi
pop esi
mov eax, 0x10
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004e6b3a
add esp, 0x70
ret
mov eax, dword [edi + 0x64b42c]
cmp eax, 1
je 0x4d8b94
mov ecx, dword [edi + 0x64b424]
mov eax, dword [edi + 0x64b420]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4d8b2e
test dx, dx
je 0x4d8b2a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4d8b2e
add eax, 4
add ecx, 4
test dx, dx
jne 0x4d8b08
xor eax, eax
jmp 0x4d8b33
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4d8b94
mov ecx, ebp
call fcn.004441a0
cmp word [0x559bda], 0x53
jne 0x4d8b6e
mov edx, dword [edi + 0x64b420]
push edx
push 0x48
call fcn.00402410
pop ebx
pop edi
pop esi
mov eax, 0xc
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004e6b3a
add esp, 0x70
ret
mov eax, dword [edi + 0x64b420]
push eax
push 0x2d
call fcn.00402410
pop ebx
pop edi
pop esi
mov eax, 0xc
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004e6b3a
add esp, 0x70
ret
xor eax, eax
mov ecx, 1
mov dword [edi + 0x64b490], eax
mov dword [edi + 0x64b498], eax
mov dword [edi + 0x64b49c], eax
cmp dword [edi + 0x648350], ecx
jne 0x4d8bbd
cmp dword [edi + 0x64b42c], ecx
je 0x4d8bcd
cmp dword [edi + 0x648358], eax
je 0x4d8c49
mov ebx, dword [esp + 0x24]
cmp ebx, 0xffffffff
jne 0x4d8bdd
cmp dword [esp + 0x28], 0
je 0x4d8cdc
cmp esi, 0xffffffff
jne 0x4d8bea
xor eax, eax
je 0x4d8cdc
mov ecx, dword [esp + 0x14]
mov edx, dword [ebp]
mov edx, dword [edx + 0xc]
sub ecx, esi
mov esi, dword [esp + 0x18]
mov eax, 0
sbb esi, eax
sub ecx, 0x50
push 0
sbb esi, eax
push esi
push ecx
mov ecx, ebp
call edx
push 0x50aaa4
push ebp
mov ecx, edi
call fcn.004d5e80
test eax, eax
je 0x4d8e76
mov eax, dword [ebp]
mov edx, dword [eax + 0x10]
mov ecx, ebp
call edx
mov ecx, 0xfffffffc
sub ecx, ebx
mov esi, 0xffffffff
sbb esi, dword [esp + 0x28]
add eax, ecx
adc edx, esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [ebp]
sub eax, 0x18
push 0
sbb ecx, 0
push ecx
push eax
mov eax, dword [edx + 0xc]
mov ecx, ebp
call eax
push 0x50aaac
push ebp
mov ecx, edi
call fcn.004d5f10
test eax, eax
je 0x4d9250
mov edx, dword [ebp]
mov eax, dword [edx + 0x10]
mov ecx, ebp
call eax
sub eax, 4
sbb edx, 0
mov dword [esp + 0x18], edx
mov edx, dword [ebp]
mov edx, dword [edx + 8]
mov dword [esp + 0x14], eax
push 0x10
lea eax, [esp + 0x4c]
push eax
mov ecx, ebp
call edx
cmp eax, 0x10
je 0x4d8e9f
mov ecx, ebp
call fcn.004441a0
mov eax, dword [edi + 0x64b420]
push eax
mov ecx, 0x531158
call fcn.0043f9b0
pop ebx
pop edi
pop esi
mov eax, 0xb
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004e6b3a
add esp, 0x70
ret
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [ebp]
mov eax, dword [eax + 0xc]
sub ecx, 0x18
push 0
sbb edx, 0
push edx
push ecx
mov ecx, ebp
call eax
push 0x50aaac
push ebp
mov ecx, edi
call fcn.004d5f10
test eax, eax
je 0x4d8c49
mov edx, dword [ebp]
mov eax, dword [edx + 0x10]
mov ecx, ebp
call eax
mov ebx, edx
mov edx, dword [ebp]
mov edx, dword [edx + 8]
mov esi, eax
push 0x10
lea eax, [esp + 0x4c]
sub esi, 4
push eax
mov ecx, ebp
sbb ebx, 0
call edx
cmp eax, 0x10
jne 0x4d8cac
push 0x50aac4
push ebp
mov ecx, edi
call fcn.004d5f10
test eax, eax
je 0x4d8eb0
movzx edx, byte [esp + 0x53]
movzx eax, byte [esp + 0x51]
shl dx, 8
movzx ecx, dx
movzx edx, byte [esp + 0x52]
or ecx, edx
shl ax, 8
movzx edx, ax
movzx eax, byte [esp + 0x50]
shl ecx, 0x10
or ecx, edx
or ecx, eax
mov dword [esp + 0x38], ecx
movzx ecx, byte [esp + 0x4f]
shl cx, 8
movzx edx, cx
movzx ecx, byte [esp + 0x4e]
or edx, ecx
movzx ecx, byte [esp + 0x4d]
shl cx, 8
shl edx, 0x10
movzx ecx, cx
or edx, ecx
movzx ecx, byte [esp + 0x4c]
or edx, ecx
xor eax, eax
or eax, edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x2c], eax
movzx eax, byte [esp + 0x57]
xor ecx, ecx
or edx, ecx
movzx ecx, byte [esp + 0x56]
shl ax, 8
mov dword [esp + 0x30], edx
movzx edx, byte [esp + 0x55]
movzx eax, ax
or eax, ecx
shl dx, 8
movzx ecx, dx
movzx edx, byte [esp + 0x54]
shl eax, 0x10
or eax, ecx
or eax, edx
mov dword [edi + 0x64b42c], eax
cmp eax, 1
jne 0x4d99d3
mov ecx, dword [esp + 0x30]
mov eax, dword [ebp]
mov edx, dword [esp + 0x2c]
mov eax, dword [eax + 0xc]
push 0
push ecx
push edx
mov ecx, ebp
call eax
push 0x50aab4
push ebp
mov ecx, edi
call fcn.004d5f10
test eax, eax
jne 0x4d8c49
mov edx, dword [ebp]
push eax
sub esi, 0x50
sbb ebx, eax
mov eax, dword [edx + 0xc]
push ebx
push esi
mov ecx, ebp
call eax
push ebp
mov ecx, edi
call fcn.004d5d80
test eax, eax
je 0x4d8e76
push 0x50aab4
lea ecx, [edi + 0x14]
push ecx
mov ecx, edi
call fcn.004d5ee0
test eax, eax
je 0x4d8e76
mov edx, dword [ebp]
mov eax, dword [edx + 0x10]
mov ecx, ebp
call eax
mov ecx, 0xfffffffc
sub ecx, dword [esp + 0x2c]
mov esi, 0xffffffff
sbb esi, dword [esp + 0x30]
jmp 0x4d8c3d
mov edx, dword [edi + 0x64b420]
push edx
mov ecx, 0x531158
call fcn.0043f3c0
pop ebx
pop edi
pop esi
mov eax, 3
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004e6b3a
add esp, 0x70
ret
push 0x50aac4
push ebp
mov ecx, edi
call fcn.004d5f10
test eax, eax
jne 0x4d8ee0
mov ecx, ebp
call fcn.004441a0
mov ecx, dword [edi + 0x64b420]
push ecx
mov ecx, 0x531158
call fcn.0043f9b0
pop ebx
pop edi
pop esi
mov eax, 0xb
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004e6b3a
add esp, 0x70
ret
movzx edx, byte [esp + 0x4b]
movzx ecx, byte [esp + 0x49]
movzx eax, byte [esp + 0x4a]
shl dx, 8
movzx esi, dx
or esi, eax
movzx eax, byte [esp + 0x48]
shl cx, 8
movzx edx, cx
movzx ecx, byte [esp + 0x53]
shl cx, 8
shl esi, 0x10
or esi, edx
movzx edx, byte [esp + 0x52]
or esi, eax
movzx eax, cx
movzx ecx, byte [esp + 0x51]
or eax, edx
shl cx, 8
shl eax, 0x10
movzx edx, cx
movzx ecx, byte [esp + 0x50]
or eax, edx
movzx edx, byte [esp + 0x4f]
or eax, ecx
shl dx, 8
movzx ecx, dx
movzx edx, byte [esp + 0x4e]
or ecx, edx
movzx edx, byte [esp + 0x4d]
shl dx, 8
movzx edx, dx
shl ecx, 0x10
or ecx, edx
movzx edx, byte [esp + 0x4c]
or ecx, edx
xor edx, edx
or eax, edx
movzx edx, byte [esp + 0x55]
xor ebx, ebx
or ebx, ecx
add ebx, dword [esp + 0x1c]
movzx ecx, byte [esp + 0x56]
adc eax, dword [esp + 0x20]
shl dx, 8
mov dword [esp + 0x30], eax
movzx ax, byte [esp + 0x57]
shl ax, 8
movzx eax, ax
or eax, ecx
shl eax, 0x10
movzx ecx, dx
movzx edx, byte [esp + 0x54]
or eax, ecx
or eax, edx
mov dword [edi + 0x64b42c], eax
dec eax
mov dword [esp + 0x2c], ebx
mov dword [edi + 0x64b430], eax
cmp esi, eax
je 0x4d9028
mov ecx, ebp
call fcn.004441a0
mov eax, dword [edi + 0x64b420]
push esi
push eax
mov ecx, edi
call fcn.004d0d70
mov edx, dword [ebp]
mov ebx, eax
mov eax, dword [edx + 4]
push 0
push ebx
mov ecx, ebp
call eax
test al, al
jne 0x4d901b
nop
push esi
mov ecx, edi
call fcn.004d14a0
test eax, eax
jne 0x4d99f6
push ebx
call fcn.004e7061
mov ecx, dword [edi + 0x64b420]
add esp, 4
push esi
push ecx
mov ecx, edi
call fcn.004d0d70
mov edx, dword [ebp]
mov ebx, eax
mov eax, dword [edx + 4]
push 0
push ebx
mov ecx, ebp
call eax
test al, al
je 0x4d8fe0
push ebx
call fcn.004e7061
mov ebx, dword [esp + 0x30]
add esp, 4
mov eax, dword [esp + 0x30]
mov edx, dword [ebp]
mov edx, dword [edx + 0xc]
push 0
push eax
push ebx
mov ecx, ebp
mov dword [edi + 0x64b430], esi
call edx
push 0x50aab4
push ebp
mov ecx, edi
call fcn.004d5f10
test eax, eax
jne 0x4d90c8
mov ecx, dword [esp + 0x18]
mov edx, dword [ebp]
push eax
mov eax, dword [esp + 0x18]
sub eax, 0x50
sbb ecx, 0
push ecx
push eax
mov eax, dword [edx + 0xc]
mov ecx, ebp
call eax
push ebp
mov ecx, edi
call fcn.004d5d80
test eax, eax
je 0x4d90b6
push 0x50aab4
lea ecx, [edi + 0x14]
push ecx
mov ecx, edi
call fcn.004d5ee0
test eax, eax
je 0x4d90b6
mov edx, dword [ebp]
mov eax, dword [edx + 0x10]
mov ecx, ebp
call eax
mov esi, eax
mov ecx, 0xfffffffc
sub ecx, ebx
mov eax, 0xffffffff
sbb eax, dword [esp + 0x30]
add esi, ecx
adc edx, eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], edx
jmp 0x4d90cc
mov ecx, ebp
call fcn.004441a0
mov ecx, dword [edi + 0x64b420]
jmp 0x4d99c8
mov esi, dword [esp + 0x1c]
mov edx, dword [ebp]
mov edx, dword [edx + 8]
push 0x34
lea eax, [esp + 0x4c]
push eax
mov ecx, ebp
call edx
cmp eax, 0x34
jae 0x4d9112
mov eax, dword [edi + 0x64b420]
push eax
mov ecx, 0x531158
call fcn.0043f3c0
mov ecx, ebp
call fcn.004441a0
pop ebx
pop edi
pop esi
mov eax, 3
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004e6b3a
add esp, 0x70
ret
movzx ecx, byte [esp + 0x5b]
movzx edx, byte [esp + 0x5a]
shl cx, 8
movzx eax, cx
or eax, edx
movzx ecx, byte [esp + 0x59]
shl cx, 8
movzx edx, cx
movzx ecx, byte [esp + 0x58]
shl eax, 0x10
or eax, edx
movzx edx, byte [esp + 0x6b]
or eax, ecx
shl dx, 8
movzx ecx, dx
movzx edx, byte [esp + 0x69]
shl dx, 8
mov dword [esp + 0x10], eax
movzx eax, byte [esp + 0x6a]
or ecx, eax
movzx ebx, byte [esp + 0x66]
movzx eax, dx
movzx edx, byte [esp + 0x68]
shl ecx, 0x10
or ecx, eax
or ecx, edx
movzx edx, byte [esp + 0x67]
shl dx, 8
movzx edx, dx
or edx, ebx
movzx ebx, byte [esp + 0x65]
shl bx, 8
shl edx, 0x10
movzx ebx, bx
or edx, ebx
movzx ebx, byte [esp + 0x64]
or edx, ebx
xor eax, eax
or eax, edx
movzx edx, byte [esp + 0x7a]
mov dword [esp + 0x3c], eax
movzx eax, byte [esp + 0x7b]
xor ebx, ebx
or ecx, ebx
movzx ebx, byte [esp + 0x76]
shl ax, 8
mov dword [esp + 0x40], ecx
movzx ecx, ax
movzx eax, byte [esp + 0x79]
or ecx, edx
shl ax, 8
movzx edx, ax
movzx eax, byte [esp + 0x78]
shl ecx, 0x10
or ecx, edx
movzx edx, byte [esp + 0x77]
shl dx, 8
movzx edx, dx
or edx, ebx
movzx ebx, byte [esp + 0x75]
shl bx, 8
movzx ebx, bx
or ecx, eax
shl edx, 0x10
or edx, ebx
movzx ebx, byte [esp + 0x74]
xor eax, eax
or edx, ebx
or eax, edx
xor ebx, ebx
or ecx, ebx
add eax, esi
adc ecx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
movzx eax, byte [esp + 0x53]
mov dword [esp + 0x28], ecx
movzx ecx, byte [esp + 0x52]
shl ax, 8
or ax, cx
cmp ax, 0x2e
jbe 0x4d9250
mov eax, dword [edi + 0x64b420]
push eax
push eax
mov ecx, 0x531158
call fcn.0043f460
mov eax, dword [edi + 0x648350]
cmp eax, 1
je 0x4d9250
cmp eax, 2
jne 0x4d90f3
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
adc ecx, dword [esp + 0x20]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x24], eax
mov dword [edi + 0x64b410], eax
xor eax, eax
mov dword [esp + 0x28], ecx
mov dword [edi + 0x64b414], ecx
mov dword [esp + 0x2c], eax
mov dword [edi + 0x64b408], eax
mov dword [edi + 0x64b40c], eax
mov dword [esp + 0x34], 1
cmp dword [edi + 0x64b430], esi
je 0x4d92a1
mov ecx, ebp
call fcn.004441a0
mov dword [edi + 0x64b430], esi
cmp esi, dword [edi + 0x64b42c]
jae 0x4d9995
mov esi, 1
jmp 0x4d92c0
mov edx, dword [edi + 0x64b42c]
mov eax, dword [edi + 0x64b430]
sub edx, esi
cmp eax, edx
jne 0x4d9303
mov eax, dword [edi + 0x64b420]
push eax
call fcn.004ead9c
mov ebx, eax
add esp, 4
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x4d9318
pop ebx
pop edi
pop esi
mov eax, 4
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004e6b3a
add esp, 0x70
ret
mov ecx, dword [edi + 0x64b420]
push eax
push ecx
mov ecx, edi
call fcn.004d0d70
mov ebx, eax
mov dword [esp + 0x10], eax
cmp dword [edi + 0x649384], 0xffffffff
jne 0x4d93ad
mov edx, dword [ebp]
mov eax, dword [edx + 4]
push 0
push ebx
mov ecx, ebp
call eax
test al, al
jne 0x4d93ad
mov ecx, dword [edi + 0x64b430]
push ecx
mov ecx, edi
call fcn.004d14a0
cmp eax, 9
je 0x4d99eb
cmp eax, 3
je 0x4d949e
mov edx, dword [edi + 0x64b42c]
mov eax, dword [edi + 0x64b430]
sub edx, esi
cmp eax, edx
jne 0x4d9387
mov eax, dword [edi + 0x64b420]
push eax
call fcn.004ead9c
mov ebx, eax
add esp, 4
mov dword [esp + 0x10], ebx
test ebx, ebx
je 0x4d92eb
jmp 0x4d939c
mov ecx, dword [edi + 0x64b3fc]
push eax
push ecx
mov ecx, edi
call fcn.004d0d70
mov ebx, eax
mov dword [esp + 0x10], eax
mov edx, dword [ebp]
mov eax, dword [edx + 4]
push 0
push ebx
mov ecx, ebp
call eax
test al, al
je 0x4d9336
cmp dword [esp + 0x44], 0
jne 0x4d93db
cmp dword [esp + 0x34], 0
je 0x4d93e3
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
mov edx, dword [ebp]
mov edx, dword [edx + 0xc]
push 0
push eax
push ecx
mov ecx, ebp
call edx
lea eax, [edi + 0x64b4a8]
mov dword [esp + 0x14], eax
mov dword [esp + 0x34], 0
push ebp
mov ecx, edi
call fcn.004d5d80
test eax, eax
je 0x4d9954
mov edx, dword [ebp]
mov eax, dword [edx + 0x10]
mov ecx, ebp
call eax
mov dword [edi + 0x64b438], eax
mov dword [edi + 0x64b43c], edx
xor eax, eax
jmp 0x4d9410
mov cl, byte [eax + edi + 0x14]
cmp cl, byte [eax + 0x50aac4]
jne 0x4d9422
inc eax
cmp eax, 4
jl 0x4d9410
cmp eax, 4
je 0x4d9954
xor eax, eax
lea ecx, [ecx]
mov dl, byte [eax + edi + 0x14]
cmp dl, byte [eax + 0x50aab4]
jne 0x4d9442
inc eax
cmp eax, 4
jl 0x4d9430
cmp eax, 4
je 0x4d9954
xor eax, eax
lea esi, [eax + 1]
mov cl, byte [eax + edi + 0x14]
cmp cl, byte [eax + 0x50aaa4]
jne 0x4d9463
add eax, esi
cmp eax, 4
jl 0x4d9450
cmp eax, 4
je 0x4d94a7
cmp dword [edi + 0x648350], esi
je 0x4d9940
mov ecx, ebp
call fcn.004441a0
push ebx
mov ecx, 0x531158
call fcn.0043f3c0
pop ebx
pop edi
pop esi
mov eax, 3
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004e6b3a
add esp, 0x70
ret
mov dword [esp + 0x44], esi
jmp 0x4d9978
mov edx, dword [ebp]
mov edx, dword [edx + 8]
push 0x2a
lea eax, [esp + 0x4c]
push eax
mov ecx, ebp
call edx
cmp eax, 0x2a
je 0x4d94c8
cmp dword [edi + 0x648350], esi
jmp 0x4d993a
push 0x68
call fcn.004e7f56
mov esi, eax
add esp, 4
test esi, esi
je 0x4d92eb
movzx eax, byte [esp + 0x49]
movzx ecx, byte [esp + 0x48]
shl ax, 8
or ax, cx
mov word [esi], ax
movzx edx, byte [esp + 0x4b]
movzx eax, byte [esp + 0x4a]
shl dx, 8
or dx, ax
mov word [esi + 2], dx
movzx ecx, byte [esp + 0x4d]
movzx edx, byte [esp + 0x4c]
shl cx, 8
or cx, dx
mov word [esi + 4], cx
movzx eax, byte [esp + 0x4f]
movzx ecx, byte [esp + 0x4e]
shl ax, 8
or ax, cx
mov word [esi + 6], ax
movzx edx, byte [esp + 0x53]
movzx ecx, byte [esp + 0x52]
shl dx, 8
movzx eax, dx
movzx edx, byte [esp + 0x51]
or eax, ecx
shl dx, 8
movzx ecx, dx
movzx edx, byte [esp + 0x50]
shl eax, 0x10
or eax, ecx
or eax, edx
mov dword [esi + 8], eax
movzx eax, byte [esp + 0x57]
movzx edx, byte [esp + 0x56]
shl ax, 8
movzx ecx, ax
movzx eax, byte [esp + 0x55]
or ecx, edx
shl ax, 8
movzx edx, ax
movzx eax, byte [esp + 0x54]
shl ecx, 0x10
or ecx, edx
or ecx, eax
mov dword [esi + 0xc], ecx
movzx ecx, byte [esp + 0x5b]
movzx eax, byte [esp + 0x5a]
shl cx, 8
movzx edx, cx
movzx ecx, byte [esp + 0x59]
or edx, eax
shl edx, 0x10
shl cx, 8
movzx eax, cx
movzx ecx, byte [esp + 0x58]
or edx, eax
or edx, ecx
mov dword [esi + 0x10], edx
xor ecx, ecx
mov dword [esi + 0x14], ecx
movzx edx, byte [esp + 0x5f]
shl dx, 8
movzx eax, dx
movzx edx, byte [esp + 0x5e]
or eax, edx
movzx edx, byte [esp + 0x5d]
shl dx, 8
shl eax, 0x10
movzx edx, dx
or eax, edx
movzx edx, byte [esp + 0x5c]
or eax, edx
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], ecx
movzx eax, byte [esp + 0x61]
movzx edx, byte [esp + 0x60]
shl ax, 8
or ax, dx
mov word [esi + 0x20], ax
movzx eax, byte [esp + 0x63]
movzx edx, byte [esp + 0x62]
shl ax, 8
or ax, dx
mov word [esi + 0x24], ax
movzx eax, byte [esp + 0x65]
movzx edx, byte [esp + 0x64]
shl ax, 8
or ax, dx
mov word [esi + 0x26], ax
movzx eax, byte [esp + 0x67]
shl ax, 8
movzx edx, ax
movzx eax, byte [esp + 0x66]
or edx, eax
mov dword [esi + 0x28], edx
movzx edx, byte [esp + 0x69]
movzx eax, byte [esp + 0x68]
shl dx, 8
or dx, ax
mov word [esi + 0x2c], dx
movzx edx, byte [esp + 0x6d]
shl dx, 8
movzx eax, dx
movzx edx, byte [esp + 0x6c]
or eax, edx
movzx edx, byte [esp + 0x6b]
shl dx, 8
shl eax, 0x10
movzx edx, dx
or eax, edx
movzx edx, byte [esp + 0x6a]
or eax, edx
mov dword [esi + 0x38], eax
movzx eax, byte [esp + 0x71]
shl ax, 8
movzx edx, ax
movzx eax, byte [esp + 0x70]
or edx, eax
movzx eax, byte [esp + 0x6f]
shl ax, 8
movzx eax, ax
shl edx, 0x10
or edx, eax
movzx eax, byte [esp + 0x6e]
or edx, eax
movzx eax, word [esi + 0x20]
lea ebx, [esi + 0x48]
mov dword [esi + 0x30], edx
mov dword [esi + 0x34], ecx
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], ecx
mov dword [esi + 0x3c], ecx
mov dword [ebx], ecx
mov dword [esi + 0x4c], ecx
cmp ax, cx
jne 0x4d9706
cmp dword [edi + 0x648350], 1
je 0x4d9940
mov eax, dword [esp + 0x10]
push eax
mov ecx, 0x531158
call fcn.0043f3c0
pop ebx
pop edi
pop esi
mov eax, 3
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004e6b3a
add esp, 0x70
ret
movzx ecx, ax
inc ecx
push ecx
call fcn.004e7f56
add esp, 4
mov dword [ebx], eax
test eax, eax
je 0x4d92eb
movzx eax, word [esi + 0x24]
test ax, ax
je 0x4d973d
movzx edx, ax
push edx
call fcn.004e7f56
add esp, 4
mov dword [esi + 0x40], eax
test eax, eax
je 0x4d92eb
movzx eax, word [esi + 0x26]
test ax, ax
je 0x4d975d
movzx eax, ax
push eax
call fcn.004e7f56
add esp, 4
mov dword [esi + 0x44], eax
test eax, eax
je 0x4d92eb
movzx eax, word [esi + 0x20]
mov ecx, dword [ebx]
mov edx, dword [ebp]
mov edx, dword [edx + 8]
push eax
push ecx
mov ecx, ebp
call edx
movzx ecx, word [esi + 0x20]
cmp eax, ecx
jne 0x4d9933
movzx eax, word [esi + 0x24]
test ax, ax
je 0x4d97a2
mov ecx, dword [esi + 0x40]
mov edx, dword [ebp]
mov edx, dword [edx + 8]
movzx eax, ax
push eax
push ecx
mov ecx, ebp
call edx
movzx ecx, word [esi + 0x24]
cmp eax, ecx
jne 0x4d9933
movzx eax, word [esi + 0x26]
test ax, ax
je 0x4d97c9
mov ecx, dword [esi + 0x44]
mov edx, dword [ebp]
mov edx, dword [edx + 8]
movzx eax, ax
push eax
push ecx
mov ecx, ebp
call edx
movzx ecx, word [esi + 0x26]
cmp eax, ecx
jne 0x4d9933
movzx edx, word [esi + 0x20]
mov eax, dword [ebx]
mov ecx, 0x800
mov byte [edx + eax], 0
test word [esi + 4], cx
jne 0x4d9806
push esi
mov ecx, edi
call fcn.004d4e30
cmp dword [esi + 0x4c], 0
jne 0x4d9806
movzx edx, byte [esi + 1]
mov eax, dword [ebx]
push edx
push eax
call fcn.004e6800
test al, al
je 0x4d9806
mov ecx, 0x800
or word [esi + 4], cx
mov edx, 0x800
test word [esi + 4], dx
je 0x4d9846
mov eax, dword [ebx]
push eax
call fcn.004f7a9f
add esp, 4
mov dword [esi + 0x4c], eax
test eax, eax
je 0x4d92eb
push eax
mov ecx, edi
call fcn.004d0b00
mov ebx, eax
test ebx, ebx
je 0x4d986f
mov ecx, dword [esi + 0x48]
push ecx
call fcn.004e7061
add esp, 4
mov dword [esi + 0x48], ebx
jmp 0x4d986f
movzx eax, word [esi]
movzx edx, al
push edx
shr eax, 8
push eax
push ebx
mov ecx, edi
call fcn.004d5d50
movzx eax, word [esi]
movzx ecx, al
push ecx
shr eax, 8
push eax
lea eax, [esi + 0x44]
push eax
mov ecx, edi
call fcn.004d5d50
push esi
mov ecx, edi
mov ebx, 1
call fcn.004d5050
cmp dword [edi + 0x648350], ebx
jne 0x4d988c
cmp dword [edi + 0x64b42c], ebx
je 0x4d9898
xor edx, edx
cmp dword [edi + 0x648358], edx
je 0x4d98a8
jmp 0x4d989a
xor edx, edx
mov eax, dword [esp + 0x1c]
add dword [esi + 0x30], eax
mov ecx, dword [esp + 0x20]
adc dword [esi + 0x34], ecx
cmp dword [esi + 0x28], edx
jne 0x4d98ef
cmp dword [esp + 0x2c], edx
je 0x4d98cb
mov eax, dword [esi + 0x34]
cmp eax, dword [edi + 0x64b40c]
ja 0x4d98ef
jb 0x4d98cb
mov ecx, dword [esi + 0x30]
cmp ecx, dword [edi + 0x64b408]
jae 0x4d98ef
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x30]
cmp eax, dword [esp + 0x28]
ja 0x4d98ef
jb 0x4d98df
cmp ecx, dword [esp + 0x24]
jae 0x4d98ef
mov dword [edi + 0x64b408], ecx
mov dword [edi + 0x64b40c], eax
mov dword [esp + 0x2c], ebx
add dword [edi + 0x64b4ac], ebx
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x58], edx
mov dword [esi + 0x5c], edx
mov dword [esi + 0x50], edx
mov dword [esi + 0x54], edx
mov ecx, edi
cmp eax, edx
je 0x4d9912
push eax
call fcn.004da7b0
jmp 0x4d991b
mov edx, dword [esi + 0x48]
push edx
call fcn.004da700
mov dword [esi + 0x54], eax
mov eax, dword [esp + 0x14]
mov dword [eax], esi
lea eax, [esi + 0x64]
mov dword [eax], 0
mov dword [esp + 0x14], eax
jmp 0x4d9940
cmp dword [edi + 0x648350], 1
jne 0x4d8a57
push ebp
mov ecx, edi
call fcn.004d5d80
mov ebx, dword [esp + 0x10]
test eax, eax
jne 0x4d93f3
mov ecx, ebp
call fcn.004441a0
push ebx
call fcn.004e7061
add esp, 4
push 0x50aaa4
lea ecx, [edi + 0x14]
push ecx
mov ecx, edi
call fcn.004d5ee0
test eax, eax
je 0x4d9995
mov esi, 1
add dword [edi + 0x64b430], esi
mov edx, dword [edi + 0x64b430]
cmp edx, dword [edi + 0x64b42c]
jb 0x4d92c0
mov eax, dword [edi + 0x64b4ac]
mov ecx, dword [esp + 0x3c]
xor edx, edx
cmp eax, ecx
jne 0x4d99af
cmp edx, dword [esp + 0x40]
je 0x4d8a8e
movzx eax, ax
xor edx, edx
cmp eax, ecx
jne 0x4d99c2
cmp edx, dword [esp + 0x40]
je 0x4d8a8e
mov ecx, dword [edi + 0x64b3fc]
push ecx
mov ecx, 0x531158
call fcn.0043f3c0
pop ebx
pop edi
pop esi
mov eax, 3
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004e6b3a
add esp, 0x70
ret
push ebx
mov ecx, 0x531158
call fcn.0043f910
mov ecx, dword [esp + 0x7c]
pop ebx
pop edi
pop esi
pop ebp
xor ecx, esp
mov eax, 9
call fcn.004e6b3a
add esp, 0x70
ret