Function at 0x4d1990
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 0x4d19f6
mov eax, dword [edi + 0x64b420]
push eax
mov ecx, 0x5275b8
call fcn.0043dba0
pop edi
lea eax, [esi + 0x12]
pop esi
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004df824
add esp, 0x70
ret
mov ecx, ebp
call fcn.004428a0
cmp edx, esi
jl 0x4d1a13
jg 0x4d1a0a
cmp eax, 0x20000
jbe 0x4d1a13
sub eax, 0x20000
sbb edx, esi
jmp 0x4d1a17
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.004cf140
mov ecx, ebp
test eax, eax
jne 0x4d1a48
call fcn.00442240
mov eax, dword [edi + 0x64b420]
jmp 0x4d2b3b
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.004cf140
test eax, eax
je 0x4d1a93
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.004cf140
test eax, eax
jne 0x4d1a70
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 0x4d1c06
movzx eax, ax
inc eax
push eax
call fcn.004dfec6
add esp, 4
mov dword [edi + 0x64b4b4], eax
test eax, eax
je 0x4d245b
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 0x4d1bf8
mov eax, dword [edi + 0x64b4b4]
push eax
call fcn.004df66f
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.004df824
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 0x4d1c2c
mov ecx, ebp
call fcn.00442240
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004df824
add esp, 0x70
ret
cmp dword [edi + 0x64b42c], 1
je 0x4d1c76
cmp dword [edi + 0x648358], 0
jne 0x4d2b46
mov ecx, dword [edi + 0x64b3fc]
push 0x4fa6f0
push ecx
call fcn.00451360
test al, al
jne 0x4d1c76
mov ecx, ebp
call fcn.00442240
pop ebx
pop edi
pop esi
mov eax, 0x10
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004df824
add esp, 0x70
ret
mov eax, dword [edi + 0x64b42c]
cmp eax, 1
je 0x4d1d1d
mov ecx, dword [edi + 0x64b424]
mov eax, dword [edi + 0x64b420]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4d1cb7
test dx, dx
je 0x4d1cb3
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4d1cb7
add eax, 4
add ecx, 4
test dx, dx
jne 0x4d1c91
xor eax, eax
jmp 0x4d1cbc
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4d1d1d
mov ecx, ebp
call fcn.00442240
cmp word [0x54fb5a], 0x53
jne 0x4d1cf7
mov edx, dword [edi + 0x64b420]
push edx
push 0x48
call fcn.004034a0
pop ebx
pop edi
pop esi
mov eax, 0xc
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004df824
add esp, 0x70
ret
mov eax, dword [edi + 0x64b420]
push eax
push 0x2d
call fcn.004034a0
pop ebx
pop edi
pop esi
mov eax, 0xc
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004df824
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 0x4d1d46
cmp dword [edi + 0x64b42c], ecx
je 0x4d1d56
cmp dword [edi + 0x648358], eax
je 0x4d1dd2
mov ebx, dword [esp + 0x24]
cmp ebx, 0xffffffff
jne 0x4d1d66
cmp dword [esp + 0x28], 0
je 0x4d1e65
cmp esi, 0xffffffff
jne 0x4d1d73
xor eax, eax
je 0x4d1e65
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.004cf140
test eax, eax
je 0x4d1fff
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.004cf1d0
test eax, eax
je 0x4d23c0
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 0x4d200a
mov ecx, ebp
call fcn.00442240
mov eax, dword [edi + 0x64b420]
push eax
mov ecx, 0x5275b8
call fcn.0043dc40
pop ebx
pop edi
pop esi
mov eax, 0xb
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004df824
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.004cf1d0
test eax, eax
je 0x4d1dd2
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 0x4d1e35
push 0x5022c0
push ebp
mov ecx, edi
call fcn.004cf1d0
test eax, eax
je 0x4d201b
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 0x4d2b46
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.004cf1d0
test eax, eax
jne 0x4d1dd2
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.004cf040
test eax, eax
je 0x4d1fff
push 0x5022b0
lea ecx, [edi + 0x18]
push ecx
mov ecx, edi
call fcn.004cf1a0
test eax, eax
je 0x4d1fff
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 0x4d1dc6
mov edx, dword [edi + 0x64b420]
jmp 0x4d2855
push 0x5022c0
push ebp
mov ecx, edi
call fcn.004cf1d0
test eax, eax
jne 0x4d204b
mov ecx, ebp
call fcn.00442240
mov ecx, dword [edi + 0x64b420]
push ecx
mov ecx, 0x5275b8
call fcn.0043dc40
pop ebx
pop edi
pop esi
mov eax, 0xb
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004df824
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 0x4d2198
mov ecx, ebp
call fcn.00442240
mov eax, dword [edi + 0x64b420]
push esi
push eax
mov ecx, edi
call fcn.004ca0c0
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 0x4d218b
lea ebx, [ebx]
push esi
mov ecx, edi
call fcn.004ca7f0
test eax, eax
jne 0x4d2b69
push ebx
call fcn.004df66f
mov ecx, dword [edi + 0x64b420]
add esp, 4
push esi
push ecx
mov ecx, edi
call fcn.004ca0c0
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 0x4d2150
push ebx
call fcn.004df66f
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.004cf1d0
test eax, eax
jne 0x4d2238
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.004cf040
test eax, eax
je 0x4d2226
push 0x5022b0
lea ecx, [edi + 0x18]
push ecx
mov ecx, edi
call fcn.004cf1a0
test eax, eax
je 0x4d2226
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 0x4d223c
mov ecx, ebp
call fcn.00442240
mov ecx, dword [edi + 0x64b420]
jmp 0x4d25ef
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 0x4d2282
mov eax, dword [edi + 0x64b420]
push eax
mov ecx, 0x5275b8
call fcn.0043d670
mov ecx, ebp
call fcn.00442240
pop ebx
pop edi
pop esi
mov eax, 3
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004df824
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 0x4d23c0
mov eax, dword [edi + 0x64b420]
push eax
push eax
mov ecx, 0x5275b8
call fcn.0043d710
mov eax, dword [edi + 0x648350]
cmp eax, 1
je 0x4d23c0
cmp eax, 2
jne 0x4d2263
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 0x4d2412
mov ecx, ebp
call fcn.00442240
mov dword [edi + 0x64b430], esi
cmp esi, dword [edi + 0x64b42c]
jae 0x4d2b08
jmp 0x4d2430
mov edx, dword [edi + 0x64b42c]
mov eax, dword [edi + 0x64b430]
sub edx, ebx
cmp eax, edx
jne 0x4d2473
mov eax, dword [edi + 0x64b420]
push eax
call fcn.004e3d15
mov esi, eax
add esp, 4
mov dword [esp + 0x10], esi
test esi, esi
jne 0x4d2488
pop ebx
pop edi
pop esi
mov eax, 4
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004df824
add esp, 0x70
ret
mov ecx, dword [edi + 0x64b420]
push eax
push ecx
mov ecx, edi
call fcn.004ca0c0
mov esi, eax
mov dword [esp + 0x10], eax
cmp dword [edi + 0x649384], 0xffffffff
jne 0x4d251d
mov edx, dword [ebp]
mov eax, dword [edx + 4]
push 0
push esi
mov ecx, ebp
call eax
test al, al
jne 0x4d251d
mov ecx, dword [edi + 0x64b430]
push ecx
mov ecx, edi
call fcn.004ca7f0
cmp eax, 9
je 0x4d2b5e
cmp eax, 3
je 0x4d2612
mov edx, dword [edi + 0x64b42c]
mov eax, dword [edi + 0x64b430]
sub edx, ebx
cmp eax, edx
jne 0x4d24f7
mov eax, dword [edi + 0x64b420]
push eax
call fcn.004e3d15
mov esi, eax
add esp, 4
mov dword [esp + 0x10], esi
test esi, esi
je 0x4d245b
jmp 0x4d250c
mov ecx, dword [edi + 0x64b3fc]
push eax
push ecx
mov ecx, edi
call fcn.004ca0c0
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 0x4d24a6
cmp dword [esp + 0x44], 0
jne 0x4d254b
cmp dword [esp + 0x34], 0
je 0x4d2553
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.004cf040
test eax, eax
je 0x4d2ac8
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 0x4d2580
mov cl, byte [eax + edi + 0x18]
cmp cl, byte [eax + 0x5022c0]
jne 0x4d2593
add eax, ebx
cmp eax, 4
jl 0x4d2580
cmp eax, 4
je 0x4d2ac8
xor eax, eax
mov edi, edi
mov dl, byte [eax + edi + 0x18]
cmp dl, byte [eax + 0x5022b0]
jne 0x4d25b3
add eax, ebx
cmp eax, 4
jl 0x4d25a0
cmp eax, 4
je 0x4d2ac8
xor eax, eax
mov edi, edi
mov cl, byte [eax + edi + 0x18]
cmp cl, byte [eax + 0x5022a0]
jne 0x4d25d3
add eax, ebx
cmp eax, 4
jl 0x4d25c0
cmp eax, 4
je 0x4d261b
cmp dword [edi + 0x648350], ebx
je 0x4d2ab3
mov ecx, ebp
call fcn.00442240
mov ecx, dword [esp + 0x10]
push ecx
mov ecx, 0x5275b8
call fcn.0043d670
pop ebx
pop edi
pop esi
mov eax, 3
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004df824
add esp, 0x70
ret
mov dword [esp + 0x44], ebx
jmp 0x4d2af0
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 0x4d263c
cmp dword [edi + 0x648350], ebx
jmp 0x4d2aad
push 0x68
call fcn.004dfec6
mov esi, eax
xor ebx, ebx
add esp, 4
cmp esi, ebx
je 0x4d245b
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 0x4d2878
cmp dword [edi + 0x648350], 1
je 0x4d2ab3
mov edx, dword [esp + 0x10]
push edx
mov ecx, 0x5275b8
call fcn.0043d670
pop ebx
pop edi
pop esi
mov eax, 3
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004df824
add esp, 0x70
ret
movzx ecx, ax
inc ecx
push ecx
call fcn.004dfec6
add esp, 4
mov dword [esi + 0x48], eax
cmp eax, ebx
je 0x4d245b
movzx eax, word [esi + 0x24]
cmp ax, bx
je 0x4d28b0
movzx edx, ax
push edx
call fcn.004dfec6
add esp, 4
mov dword [esi + 0x40], eax
cmp eax, ebx
je 0x4d245b
movzx eax, word [esi + 0x26]
cmp ax, bx
je 0x4d28d0
movzx eax, ax
push eax
call fcn.004dfec6
add esp, 4
mov dword [esi + 0x44], eax
cmp eax, ebx
je 0x4d245b
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 0x4d2aa6
movzx eax, word [esi + 0x24]
cmp ax, bx
je 0x4d2916
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 0x4d2aa6
movzx eax, word [esi + 0x26]
cmp ax, bx
je 0x4d293d
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 0x4d2aa6
movzx edx, word [esi + 0x20]
mov eax, dword [esi + 0x48]
mov ecx, 0x800
mov byte [edx + eax], 0
test word [esi + 4], cx
jne 0x4d297b
push esi
mov ecx, edi
call fcn.004ce0f0
cmp dword [esi + 0x4c], ebx
jne 0x4d297b
movzx edx, byte [esi + 1]
mov eax, dword [esi + 0x48]
push edx
push eax
call fcn.004df610
test al, al
je 0x4d297b
mov ecx, 0x800
or word [esi + 4], cx
mov edx, 0x800
test word [esi + 4], dx
je 0x4d29ba
mov eax, dword [esi + 0x48]
push eax
call fcn.004f082f
add esp, 4
mov dword [esi + 0x4c], eax
test eax, eax
je 0x4d245b
push eax
mov ecx, edi
call fcn.004c9e70
mov ebx, eax
test ebx, ebx
je 0x4d29ba
mov ecx, dword [esi + 0x48]
push ecx
call fcn.004df66f
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.004cf010
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.004cf010
push esi
mov ecx, edi
call fcn.004ce310
mov edx, 1
cmp dword [edi + 0x648350], edx
jne 0x4d2a03
cmp dword [edi + 0x64b42c], edx
je 0x4d2a0f
xor ebx, ebx
cmp dword [edi + 0x648358], ebx
je 0x4d2a1f
jmp 0x4d2a11
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 0x4d2a66
cmp dword [esp + 0x2c], ebx
je 0x4d2a42
mov eax, dword [esi + 0x34]
cmp eax, dword [edi + 0x64b40c]
ja 0x4d2a66
jb 0x4d2a42
mov ecx, dword [esi + 0x30]
cmp ecx, dword [edi + 0x64b408]
jae 0x4d2a66
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x30]
cmp eax, dword [esp + 0x28]
ja 0x4d2a66
jb 0x4d2a56
cmp ecx, dword [esp + 0x24]
jae 0x4d2a66
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 0x4d2a89
push eax
call fcn.004d3930
jmp 0x4d2a92
mov edx, dword [esi + 0x48]
push edx
call fcn.004d3880
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 0x4d2ab3
cmp dword [edi + 0x648350], 1
jne 0x4d1be0
push ebp
mov ecx, edi
call fcn.004cf040
mov ebx, 1
test eax, eax
jne 0x4d2563
mov ecx, ebp
call fcn.00442240
mov ecx, dword [esp + 0x10]
push ecx
call fcn.004df66f
add esp, 4
push 0x5022a0
lea edx, [edi + 0x18]
push edx
mov ecx, edi
call fcn.004cf1a0
test eax, eax
je 0x4d2b08
add dword [edi + 0x64b430], ebx
mov eax, dword [edi + 0x64b430]
cmp eax, dword [edi + 0x64b42c]
jb 0x4d2430
mov eax, dword [edi + 0x64b4ac]
mov ecx, dword [esp + 0x3c]
xor edx, edx
cmp eax, ecx
jne 0x4d2b22
cmp edx, dword [esp + 0x40]
je 0x4d1c17
movzx eax, ax
xor edx, edx
cmp eax, ecx
jne 0x4d2b35
cmp edx, dword [esp + 0x40]
je 0x4d1c17
mov eax, dword [edi + 0x64b3fc]
push eax
mov ecx, 0x5275b8
call fcn.0043d670
pop ebx
pop edi
pop esi
mov eax, 3
pop ebp
mov ecx, dword [esp + 0x6c]
xor ecx, esp
call fcn.004df824
add esp, 0x70
ret
push esi
mov ecx, 0x5275b8
call fcn.0043dba0
mov ecx, dword [esp + 0x7c]
pop ebx
pop edi
pop esi
pop ebp
xor ecx, esp
mov eax, 9
call fcn.004df824
add esp, 0x70
ret