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

Disassembly:
sub esp, 0x70
mov eax, dword [0x50fb70]
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 0x4d14c6
mov eax, dword [edi + 0x64b420]
push eax
mov ecx, 0x5275b8
call fcn.0043d970
pop edi
lea eax, [esi + 0x12]
pop esi
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004df2c4
add esp, 0x70
ret
mov ecx, ebp
call fcn.004426e0
cmp edx, esi
jl 0x4d14e3
jg 0x4d14da
cmp eax, 0x20000
jbe 0x4d14e3
sub eax, 0x20000
sbb edx, esi
jmp 0x4d14e7
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 0x5022c0
push ebp
mov ecx, edi
call fcn.004cec00
mov ecx, ebp
test eax, eax
jne 0x4d1518
call fcn.00442080
mov eax, dword [edi + 0x64b420]
jmp 0x4d260b
mov edx, dword [ebp]
mov eax, dword [edx + 0x10]
call eax
push 0x5022c0
push ebp
mov ecx, edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
call fcn.004cec00
test eax, eax
je 0x4d1563
lea esp, [esp]
mov edx, dword [ebp]
mov eax, dword [edx + 0x10]
mov ecx, ebp
call eax
push 0x5022c0
push ebp
mov ecx, edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
call fcn.004cec00
test eax, eax
jne 0x4d1540
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 0x4d16d6
movzx eax, ax
inc eax
push eax
call fcn.004df966
add esp, 4
mov dword [edi + 0x64b4b4], eax
test eax, eax
je 0x4d1f2b
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 0x4d16c8
mov eax, dword [edi + 0x64b4b4]
push eax
call fcn.004df10f
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.004df2c4
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 0x4d16fc
mov ecx, ebp
call fcn.00442080
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004df2c4
add esp, 0x70
ret
cmp dword [edi + 0x64b42c], 1
je 0x4d1746
cmp dword [edi + 0x648358], 0
jne 0x4d2616
mov ecx, dword [edi + 0x64b3fc]
push 0x4fa6f0
push ecx
call fcn.00451140
test al, al
jne 0x4d1746
mov ecx, ebp
call fcn.00442080
pop ebx
pop edi
pop esi
mov eax, 0x10
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004df2c4
add esp, 0x70
ret
mov eax, dword [edi + 0x64b42c]
cmp eax, 1
je 0x4d17ed
mov ecx, dword [edi + 0x64b424]
mov eax, dword [edi + 0x64b420]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4d1787
test dx, dx
je 0x4d1783
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4d1787
add eax, 4
add ecx, 4
test dx, dx
jne 0x4d1761
xor eax, eax
jmp 0x4d178c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4d17ed
mov ecx, ebp
call fcn.00442080
cmp word [0x54fb5a], 0x53
jne 0x4d17c7
mov edx, dword [edi + 0x64b420]
push edx
push 0x48
call fcn.00403460
pop ebx
pop edi
pop esi
mov eax, 0xc
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004df2c4
add esp, 0x70
ret
mov eax, dword [edi + 0x64b420]
push eax
push 0x2d
call fcn.00403460
pop ebx
pop edi
pop esi
mov eax, 0xc
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004df2c4
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 0x4d1816
cmp dword [edi + 0x64b42c], ecx
je 0x4d1826
cmp dword [edi + 0x648358], eax
je 0x4d18a2
mov ebx, dword [esp + 0x24]
cmp ebx, 0xffffffff
jne 0x4d1836
cmp dword [esp + 0x28], 0
je 0x4d1935
cmp esi, 0xffffffff
jne 0x4d1843
xor eax, eax
je 0x4d1935
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 0x5022a0
push ebp
mov ecx, edi
call fcn.004cec00
test eax, eax
je 0x4d1acf
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 0x5022a8
push ebp
mov ecx, edi
call fcn.004cec90
test eax, eax
je 0x4d1e90
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 0x4d1ada
mov ecx, ebp
call fcn.00442080
mov eax, dword [edi + 0x64b420]
push eax
mov ecx, 0x5275b8
call fcn.0043da10
pop ebx
pop edi
pop esi
mov eax, 0xb
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004df2c4
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 0x5022a8
push ebp
mov ecx, edi
call fcn.004cec90
test eax, eax
je 0x4d18a2
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 0x4d1905
push 0x5022c0
push ebp
mov ecx, edi
call fcn.004cec90
test eax, eax
je 0x4d1aeb
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 0x4d2616
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 0x5022b0
push ebp
mov ecx, edi
call fcn.004cec90
test eax, eax
jne 0x4d18a2
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.004ceb00
test eax, eax
je 0x4d1acf
push 0x5022b0
lea ecx, [edi + 0x18]
push ecx
mov ecx, edi
call fcn.004cec60
test eax, eax
je 0x4d1acf
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 0x4d1896
mov edx, dword [edi + 0x64b420]
jmp 0x4d2325
push 0x5022c0
push ebp
mov ecx, edi
call fcn.004cec90
test eax, eax
jne 0x4d1b1b
mov ecx, ebp
call fcn.00442080
mov ecx, dword [edi + 0x64b420]
push ecx
mov ecx, 0x5275b8
call fcn.0043da10
pop ebx
pop edi
pop esi
mov eax, 0xb
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004df2c4
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 0x4d1c68
mov ecx, ebp
call fcn.00442080
mov eax, dword [edi + 0x64b420]
push esi
push eax
mov ecx, edi
call fcn.004c9bb0
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 0x4d1c5b
lea ebx, [ebx]
push esi
mov ecx, edi
call fcn.004ca650
test eax, eax
jne 0x4d2639
push ebx
call fcn.004df10f
mov ecx, dword [edi + 0x64b420]
add esp, 4
push esi
push ecx
mov ecx, edi
call fcn.004c9bb0
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 0x4d1c20
push ebx
call fcn.004df10f
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 0x5022b0
push ebp
mov ecx, edi
call fcn.004cec90
test eax, eax
jne 0x4d1d08
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.004ceb00
test eax, eax
je 0x4d1cf6
push 0x5022b0
lea ecx, [edi + 0x18]
push ecx
mov ecx, edi
call fcn.004cec60
test eax, eax
je 0x4d1cf6
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 0x4d1d0c
mov ecx, ebp
call fcn.00442080
mov ecx, dword [edi + 0x64b420]
jmp 0x4d20bf
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 0x4d1d52
mov eax, dword [edi + 0x64b420]
push eax
mov ecx, 0x5275b8
call fcn.0043d440
mov ecx, ebp
call fcn.00442080
pop ebx
pop edi
pop esi
mov eax, 3
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004df2c4
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 0x4d1e90
mov eax, dword [edi + 0x64b420]
push eax
push eax
mov ecx, 0x5275b8
call fcn.0043d4e0
mov eax, dword [edi + 0x648350]
cmp eax, 1
je 0x4d1e90
cmp eax, 2
jne 0x4d1d33
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 ebx, 1
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], ebx
cmp dword [edi + 0x64b430], esi
je 0x4d1ee2
mov ecx, ebp
call fcn.00442080
mov dword [edi + 0x64b430], esi
cmp esi, dword [edi + 0x64b42c]
jae 0x4d25d8
jmp 0x4d1f00
mov edx, dword [edi + 0x64b42c]
mov eax, dword [edi + 0x64b430]
sub edx, ebx
cmp eax, edx
jne 0x4d1f43
mov eax, dword [edi + 0x64b420]
push eax
call fcn.004e37b5
mov esi, eax
add esp, 4
mov dword [esp + 0x10], esi
test esi, esi
jne 0x4d1f58
pop ebx
pop edi
pop esi
mov eax, 4
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004df2c4
add esp, 0x70
ret
mov ecx, dword [edi + 0x64b420]
push eax
push ecx
mov ecx, edi
call fcn.004c9bb0
mov esi, eax
mov dword [esp + 0x10], eax
cmp dword [edi + 0x649384], 0xffffffff
jne 0x4d1fed
mov edx, dword [ebp]
mov eax, dword [edx + 4]
push 0
push esi
mov ecx, ebp
call eax
test al, al
jne 0x4d1fed
mov ecx, dword [edi + 0x64b430]
push ecx
mov ecx, edi
call fcn.004ca650
cmp eax, 9
je 0x4d262e
cmp eax, 3
je 0x4d20e2
mov edx, dword [edi + 0x64b42c]
mov eax, dword [edi + 0x64b430]
sub edx, ebx
cmp eax, edx
jne 0x4d1fc7
mov eax, dword [edi + 0x64b420]
push eax
call fcn.004e37b5
mov esi, eax
add esp, 4
mov dword [esp + 0x10], esi
test esi, esi
je 0x4d1f2b
jmp 0x4d1fdc
mov ecx, dword [edi + 0x64b3fc]
push eax
push ecx
mov ecx, edi
call fcn.004c9bb0
mov esi, eax
mov dword [esp + 0x10], eax
mov edx, dword [ebp]
mov eax, dword [edx + 4]
push 0
push esi
mov ecx, ebp
call eax
test al, al
je 0x4d1f76
cmp dword [esp + 0x44], 0
jne 0x4d201b
cmp dword [esp + 0x34], 0
je 0x4d2023
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.004ceb00
test eax, eax
je 0x4d2598
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 0x4d2050
mov cl, byte [eax + edi + 0x18]
cmp cl, byte [eax + 0x5022c0]
jne 0x4d2063
add eax, ebx
cmp eax, 4
jl 0x4d2050
cmp eax, 4
je 0x4d2598
xor eax, eax
mov edi, edi
mov dl, byte [eax + edi + 0x18]
cmp dl, byte [eax + 0x5022b0]
jne 0x4d2083
add eax, ebx
cmp eax, 4
jl 0x4d2070
cmp eax, 4
je 0x4d2598
xor eax, eax
mov edi, edi
mov cl, byte [eax + edi + 0x18]
cmp cl, byte [eax + 0x5022a0]
jne 0x4d20a3
add eax, ebx
cmp eax, 4
jl 0x4d2090
cmp eax, 4
je 0x4d20eb
cmp dword [edi + 0x648350], ebx
je 0x4d2583
mov ecx, ebp
call fcn.00442080
mov ecx, dword [esp + 0x10]
push ecx
mov ecx, 0x5275b8
call fcn.0043d440
pop ebx
pop edi
pop esi
mov eax, 3
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004df2c4
add esp, 0x70
ret
mov dword [esp + 0x44], ebx
jmp 0x4d25c0
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 0x4d210c
cmp dword [edi + 0x648350], ebx
jmp 0x4d257d
push 0x68
call fcn.004df966
mov esi, eax
xor ebx, ebx
add esp, 4
cmp esi, ebx
je 0x4d1f2b
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 cx, 8
shl edx, 0x10
movzx eax, cx
movzx ecx, byte [esp + 0x58]
or edx, eax
or edx, ecx
mov dword [esi + 0x10], edx
mov dword [esi + 0x14], ebx
movzx edx, byte [esp + 0x5f]
movzx ecx, byte [esp + 0x5e]
shl dx, 8
movzx eax, dx
movzx edx, byte [esp + 0x5d]
or eax, ecx
shl dx, 8
movzx ecx, dx
movzx edx, byte [esp + 0x5c]
shl eax, 0x10
or eax, ecx
or eax, edx
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], ebx
movzx eax, byte [esp + 0x61]
movzx ecx, byte [esp + 0x60]
shl ax, 8
or ax, cx
mov word [esi + 0x20], ax
movzx edx, byte [esp + 0x63]
shl dx, 8
movzx eax, byte [esp + 0x62]
or dx, ax
mov word [esi + 0x24], dx
movzx ecx, byte [esp + 0x65]
movzx edx, byte [esp + 0x64]
shl cx, 8
or cx, dx
mov word [esi + 0x26], cx
movzx eax, byte [esp + 0x67]
movzx edx, byte [esp + 0x66]
shl ax, 8
movzx ecx, ax
or ecx, edx
mov dword [esi + 0x28], ecx
movzx eax, byte [esp + 0x69]
movzx ecx, byte [esp + 0x68]
shl ax, 8
or ax, cx
mov word [esi + 0x2c], ax
movzx edx, byte [esp + 0x6d]
movzx ecx, byte [esp + 0x6c]
shl dx, 8
movzx eax, dx
movzx edx, byte [esp + 0x6b]
or eax, ecx
shl eax, 0x10
shl dx, 8
movzx ecx, dx
movzx edx, byte [esp + 0x6a]
or eax, ecx
or eax, edx
mov dword [esi + 0x38], eax
movzx eax, byte [esp + 0x71]
movzx edx, byte [esp + 0x70]
shl ax, 8
movzx ecx, ax
movzx eax, byte [esp + 0x6f]
or ecx, edx
shl ax, 8
movzx edx, ax
movzx eax, byte [esp + 0x6e]
shl ecx, 0x10
or ecx, edx
or ecx, eax
movzx eax, word [esi + 0x20]
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], ebx
mov dword [esi + 0x44], ebx
mov dword [esi + 0x40], ebx
mov dword [esi + 0x3c], ebx
mov dword [esi + 0x48], ebx
mov dword [esi + 0x4c], ebx
cmp ax, bx
jne 0x4d2348
cmp dword [edi + 0x648350], 1
je 0x4d2583
mov edx, dword [esp + 0x10]
push edx
mov ecx, 0x5275b8
call fcn.0043d440
pop ebx
pop edi
pop esi
mov eax, 3
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004df2c4
add esp, 0x70
ret
movzx ecx, ax
inc ecx
push ecx
call fcn.004df966
add esp, 4
mov dword [esi + 0x48], eax
cmp eax, ebx
je 0x4d1f2b
movzx eax, word [esi + 0x24]
cmp ax, bx
je 0x4d2380
movzx edx, ax
push edx
call fcn.004df966
add esp, 4
mov dword [esi + 0x40], eax
cmp eax, ebx
je 0x4d1f2b
movzx eax, word [esi + 0x26]
cmp ax, bx
je 0x4d23a0
movzx eax, ax
push eax
call fcn.004df966
add esp, 4
mov dword [esi + 0x44], eax
cmp eax, ebx
je 0x4d1f2b
movzx eax, word [esi + 0x20]
mov ecx, dword [esi + 0x48]
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 0x4d2576
movzx eax, word [esi + 0x24]
cmp ax, bx
je 0x4d23e6
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 0x4d2576
movzx eax, word [esi + 0x26]
cmp ax, bx
je 0x4d240d
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 0x4d2576
movzx edx, word [esi + 0x20]
mov eax, dword [esi + 0x48]
mov ecx, 0x800
mov byte [edx + eax], 0
test word [esi + 4], cx
jne 0x4d244b
push esi
mov ecx, edi
call fcn.004cdbb0
cmp dword [esi + 0x4c], ebx
jne 0x4d244b
movzx edx, byte [esi + 1]
mov eax, dword [esi + 0x48]
push edx
push eax
call fcn.004df0b0
test al, al
je 0x4d244b
mov ecx, 0x800
or word [esi + 4], cx
mov edx, 0x800
test word [esi + 4], dx
je 0x4d248a
mov eax, dword [esi + 0x48]
push eax
call fcn.004f02cf
add esp, 4
mov dword [esi + 0x4c], eax
test eax, eax
je 0x4d1f2b
push eax
mov ecx, edi
call fcn.004c9960
mov ebx, eax
test ebx, ebx
je 0x4d248a
mov ecx, dword [esi + 0x48]
push ecx
call fcn.004df10f
add esp, 4
mov dword [esi + 0x48], ebx
movzx eax, word [esi]
movzx edx, al
push edx
shr eax, 8
push eax
mov eax, dword [esi + 0x48]
push eax
mov ecx, edi
call fcn.004cead0
movzx eax, word [esi]
mov edx, dword [esi + 0x44]
movzx ecx, al
push ecx
shr eax, 8
push eax
push edx
mov ecx, edi
call fcn.004cead0
push esi
mov ecx, edi
call fcn.004cddd0
mov edx, 1
cmp dword [edi + 0x648350], edx
jne 0x4d24d3
cmp dword [edi + 0x64b42c], edx
je 0x4d24df
xor ebx, ebx
cmp dword [edi + 0x648358], ebx
je 0x4d24ef
jmp 0x4d24e1
xor ebx, ebx
mov eax, dword [esp + 0x1c]
add dword [esi + 0x30], eax
mov ecx, dword [esp + 0x20]
adc dword [esi + 0x34], ecx
cmp dword [esi + 0x28], ebx
jne 0x4d2536
cmp dword [esp + 0x2c], ebx
je 0x4d2512
mov eax, dword [esi + 0x34]
cmp eax, dword [edi + 0x64b40c]
ja 0x4d2536
jb 0x4d2512
mov ecx, dword [esi + 0x30]
cmp ecx, dword [edi + 0x64b408]
jae 0x4d2536
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x30]
cmp eax, dword [esp + 0x28]
ja 0x4d2536
jb 0x4d2526
cmp ecx, dword [esp + 0x24]
jae 0x4d2536
mov dword [edi + 0x64b408], ecx
mov dword [edi + 0x64b40c], eax
mov dword [esp + 0x2c], edx
add dword [edi + 0x64b4ac], edx
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x58], ebx
mov dword [esi + 0x5c], ebx
mov dword [esi + 0x50], ebx
mov dword [esi + 0x54], ebx
mov ecx, edi
cmp eax, ebx
je 0x4d2559
push eax
call fcn.004d3400
jmp 0x4d2562
mov edx, dword [esi + 0x48]
push edx
call fcn.004d3350
mov dword [esi + 0x54], eax
mov eax, dword [esp + 0x14]
mov dword [eax], esi
lea eax, [esi + 0x64]
mov dword [eax], ebx
mov dword [esp + 0x14], eax
jmp 0x4d2583
cmp dword [edi + 0x648350], 1
jne 0x4d16b0
push ebp
mov ecx, edi
call fcn.004ceb00
mov ebx, 1
test eax, eax
jne 0x4d2033
mov ecx, ebp
call fcn.00442080
mov ecx, dword [esp + 0x10]
push ecx
call fcn.004df10f
add esp, 4
push 0x5022a0
lea edx, [edi + 0x18]
push edx
mov ecx, edi
call fcn.004cec60
test eax, eax
je 0x4d25d8
add dword [edi + 0x64b430], ebx
mov eax, dword [edi + 0x64b430]
cmp eax, dword [edi + 0x64b42c]
jb 0x4d1f00
mov eax, dword [edi + 0x64b4ac]
mov ecx, dword [esp + 0x3c]
xor edx, edx
cmp eax, ecx
jne 0x4d25f2
cmp edx, dword [esp + 0x40]
je 0x4d16e7
movzx eax, ax
xor edx, edx
cmp eax, ecx
jne 0x4d2605
cmp edx, dword [esp + 0x40]
je 0x4d16e7
mov eax, dword [edi + 0x64b3fc]
push eax
mov ecx, 0x5275b8
call fcn.0043d440
pop ebx
pop edi
pop esi
mov eax, 3
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004df2c4
add esp, 0x70
ret
push esi
mov ecx, 0x5275b8
call fcn.0043d970
mov ecx, dword [esp + 0x7c]
pop ebx
pop edi
pop esi
pop ebp
xor ecx, esp
mov eax, 9
call fcn.004df2c4
add esp, 0x70
ret