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

Disassembly:
push 0xffffffffffffffff
push 0x5f312e
mov eax, dword fs:[0]
push eax
sub esp, 0xf4
mov eax, dword [0x64c874]
xor eax, esp
mov dword [esp + 0xf0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x64c874]
xor eax, esp
push eax
lea eax, [esp + 0x108]
mov dword fs:[0], eax
mov eax, dword [esp + 0x11c]
mov ebp, dword [esp + 0x118]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x124]
xor ebx, ebx
mov dword [esp + 0x18], ebx
mov esi, ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0x40], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], 0x4000
call fcn.004d06b0
mov dword [esp + 0x110], ebx
mov dword [ebp + 0x1c], ebx
mov dword [ebp + 0x20], ebx
mov dword [ebp], 0x618c70
lea eax, [ebp + 0x28]
lea ecx, [ebx + 1]
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], ebx
add eax, 0x18
sub ecx, 1
jns 0x4d45c3
and byte [ebp + 0x80], 0xfe
mov dword [ebp + 0x5c], ebx
mov dword [ebp + 0x60], ebx
mov dword [ebp + 0x64], ebx
mov dword [ebp + 0x68], ebx
mov dword [ebp + 0x6c], ebp
mov dword [ebp + 0x70], ebx
mov dword [ebp + 0x74], ebx
mov dword [ebp + 0x78], ebx
mov dword [ebp + 0x7c], ebx
mov dword [ebp + 0x88], ebx
mov dword [ebp + 0x8c], ebx
mov dword [ebp + 0x90], ebx
mov dword [ebp + 0x94], ebx
mov dword [ebp + 0x98], ebx
mov dword [ebp + 0x9c], ebx
mov ecx, dword [0x65ae48]
mov dword [ebp + 0xa0], ecx
mov edx, dword [0x65ae4c]
mov dword [ebp + 0xa4], edx
mov dword [ebp + 0xa8], ebx
mov dword [ebp + 0xac], ebx
mov byte [esp + 0x110], 4
mov dword [ebp + 0xb0], ebx
call fcn.0051a4d0
mov dword [ebp + 0xb8], eax
mov byte [eax + 0x11], 1
mov eax, dword [ebp + 0xb8]
mov dword [eax + 4], eax
mov eax, dword [ebp + 0xb8]
mov dword [eax], eax
mov eax, dword [ebp + 0xb8]
mov dword [eax + 8], eax
mov dword [ebp + 0xbc], ebx
mov byte [esp + 0x110], 5
mov dword [ebp + 0xc0], ebx
call fcn.004f0570
mov dword [ebp + 0xc8], eax
mov dword [ebp + 0xcc], ebx
mov byte [esp + 0x110], 6
call fcn.00490870
mov dword [ebp + 0xd4], eax
mov dword [ebp + 0xd8], ebx
mov esi, dword [esp + 0x28]
mov byte [esp + 0x110], 7
mov edi, dword [esi + 0x378]
call fcn.004f9190
mov ecx, dword [esp + 0x30]
mov dword [ebp + 0xe0], eax
mov eax, dword [esp + 0x2c]
mov dword [ebp + 0xf4], ebx
mov dword [ebp + 0xf8], ebx
mov dword [ebp + 0x100], ebx
mov dword [ebp + 0x104], ebx
mov dword [ebp + 0xe8], eax
mov dword [ebp + 0xec], ecx
mov byte [ebp + 0xf0], bl
lea eax, [ebp + 0x108]
mov byte [esp + 0x110], 8
call fcn.004d54e0
lea eax, [ebp + 0x1f8]
call fcn.004d54e0
mov dword [ebp + 0x2e8], esi
add esi, 0x374
lea eax, [ebp + 0x2ec]
push esi
push eax
call fcn.004efea0
mov dword [ebp + 0x2fc], ebx
mov dword [ebp + 0x300], ebx
mov dword [ebp + 0x304], ebx
mov dword [ebp + 0x30c], ebx
mov dword [ebp + 0x310], ebx
mov dword [ebp + 0x314], ebx
mov dword [ebp + 0x318], ebx
mov dword [ebp + 0x320], ebx
mov dword [ebp + 0x324], ebx
mov dword [ebp + 0x328], ebx
mov dword [ebp + 0x330], ebx
mov dword [ebp + 0x334], ebx
mov dword [ebp + 0x338], ebx
mov dword [ebp + 0x33c], ebx
mov esi, dword [esp + 0x20]
push 0xffffffffffffffff
lea ecx, [ebp + 0x340]
mov byte [esp + 0x114], 0xe
lea eax, [esi + 0xa8]
push ebx
mov edi, 0xf
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push eax
mov byte [ecx + 4], bl
call fcn.0040b390
mov dword [ebp + 0x374], edi
mov dword [ebp + 0x370], ebx
mov byte [ebp + 0x360], bl
mov dword [ebp + 0x390], edi
mov dword [ebp + 0x38c], ebx
mov byte [ebp + 0x37c], bl
mov dword [ebp + 0x398], ebx
mov dword [ebp + 0x39c], ebx
mov dword [ebp + 0x3a0], ebx
lea edi, [ebp + 0x3a4]
lea ecx, [esi + 0x5c]
mov byte [esp + 0x110], 0x12
call fcn.004a1410
push 0xffffffffffffffff
lea ecx, [ebp + 0x3c0]
mov byte [esp + 0x114], 0x13
lea eax, [esi + 0xc4]
push ebx
mov edi, 0xf
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push eax
mov byte [ecx + 4], bl
call fcn.0040b390
push 0xffffffffffffffff
lea ecx, [ebp + 0x3dc]
mov byte [esp + 0x114], 0x14
lea eax, [esi + 0xe0]
push ebx
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push eax
mov byte [ecx + 4], bl
call fcn.0040b390
push 0xffffffffffffffff
lea ecx, [ebp + 0x3f8]
mov byte [esp + 0x114], 0x15
lea eax, [esi + 0xfc]
push ebx
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push eax
mov byte [ecx + 4], bl
call fcn.0040b390
mov dword [ebp + 0x418], ebx
mov dword [ebp + 0x41c], ebx
mov dword [ebp + 0x420], ebx
and dword [ebp + 0x428], 0x80000000
and byte [ebp + 0x42c], 0xfe
mov dword [ebp + 0x424], ebx
mov byte [esp + 0x110], 0x18
mov dword [ebp + 0x430], ebx
call fcn.005d95d0
mov dword [ebp + 0x434], eax
mov dword [ebp + 0x450], edi
mov dword [ebp + 0x44c], ebx
mov byte [ebp + 0x43c], bl
mov dword [ebp + 0x458], ebx
mov dword [ebp + 0x45c], ebx
mov dword [ebp + 0x460], ebx
mov dword [ebp + 0x468], ebx
mov dword [ebp + 0x46c], ebx
mov dword [ebp + 0x470], ebx
mov dword [ebp + 0x474], ebx
mov dword [ebp + 0x464], ebx
mov dword [ebp + 0x478], ebx
lea eax, [ebp + 0x480]
lea ecx, [esi + 0x80]
mov esi, eax
mov byte [esp + 0x110], 0x1c
call fcn.00559c90
push ebx
mov byte [esp + 0x114], 0x1d
call fcn.005b8b28
add esp, 4
push ebx
mov dword [ebp + 0x4a0], eax
mov dword [ebp + 0x4a4], edx
mov dword [ebp + 0x4a8], ebx
mov dword [ebp + 0x4ac], ebx
mov dword [ebp + 0x4b0], ebx
mov dword [ebp + 0x4b4], ebx
mov dword [ebp + 0x4b8], ebx
mov dword [ebp + 0x4bc], ebx
call fcn.005b8b28
fldz
mov esi, dword [esp + 0x24]
fstp dword [ebp + 0x4c8]
mov dword [ebp + 0x4c0], eax
mov eax, dword [ebp + 0x4e4]
mov edi, 0xff000000
and eax, edi
or eax, 0x7000000
mov dword [ebp + 0x4c4], edx
mov edx, dword [esp + 0x124]
mov dword [ebp + 0x4e4], eax
mov dword [ebp + 0x4cc], ebx
mov dword [ebp + 0x4d0], ebx
mov dword [ebp + 0x4d4], ebx
mov dword [ebp + 0x4d8], ebx
mov dword [ebp + 0x4dc], ebx
mov dword [ebp + 0x4e0], edx
mov ecx, dword [esi + 0x7c]
and byte [ebp + 0x4f8], 0xf0
and byte [ebp + 0x4e8], 0xf8
and dword [ebp + 0x4ec], edi
and dword [ebp + 0x4f4], edi
shl ecx, 0x1b
xor ecx, eax
and ecx, 0x18000000
xor ecx, eax
mov dword [ebp + 0x4e4], ecx
mov cl, byte [ebp + 0x4f8]
mov byte [ebp + 0x4f0], 0xff
mov eax, dword [esi + 0x118]
and eax, 2
add esp, 4
or eax, ebx
je 0x4d4a1f
mov al, 1
jmp 0x4d4a21
xor al, al
and dword [ebp + 0x50c], edi
and dword [ebp + 0x4fc], edi
and al, 1
or al, 0xf8
and cl, 0xf
shl al, 4
or al, cl
mov ecx, dword [ebp + 0x50c]
mov esi, 0xffffff
or dword [ebp + 0x504], esi
mov byte [esp + 0x1f], al
mov byte [ebp + 0x4f8], al
mov byte [ebp + 0x500], bl
mov byte [ebp + 0x508], bl
xor eax, eax
mov edx, 0x2000
sar edx, 1
add eax, 1
cmp edx, ebx
jg 0x4d4a67
or dword [ebp + 0x514], esi
or dword [ebp + 0x51c], esi
or dword [ebp + 0x524], esi
and byte [ebp + 0x52c], 0xfe
and byte [ebp + 0x510], 0xf8
and dword [ebp + 0x518], edi
and dword [ebp + 0x528], 0xfff00000
mov esi, dword [esp + 0x20]
mov dl, byte [ebp + 0x52c]
shl eax, 0x18
xor eax, ecx
and eax, 0x1f000000
xor eax, ecx
mov dword [ebp + 0x50c], eax
mov byte [ebp + 0x520], bl
mov eax, dword [esi + 0x118]
and eax, 0x20
or eax, ebx
jne 0x4d4ad6
mov eax, 1
jmp 0x4d4ad8
xor eax, eax
add al, al
xor al, dl
and al, 2
mov cl, al
xor cl, dl
mov byte [ebp + 0x52c], cl
mov eax, dword [esi + 0x118]
and eax, 0x20
or eax, ebx
jne 0x4d4afc
mov eax, 1
jmp 0x4d4afe
xor eax, eax
add al, al
add al, al
xor al, cl
and al, 4
mov dl, al
xor dl, cl
mov byte [ebp + 0x52c], dl
mov eax, dword [esi + 0x118]
and eax, 0x20
or eax, ebx
jne 0x4d4b24
mov eax, 1
jmp 0x4d4b26
xor eax, eax
add al, al
add al, al
add al, al
xor al, dl
and al, 8
mov cl, al
xor cl, dl
mov byte [ebp + 0x52c], cl
mov eax, dword [esi + 0x118]
and eax, 0x20
or eax, ebx
jne 0x4d4b4e
mov eax, 1
jmp 0x4d4b50
xor eax, eax
shl al, 4
xor al, cl
and al, 0x10
mov dl, al
xor dl, cl
mov byte [ebp + 0x52c], dl
mov eax, dword [esi + 0x118]
and eax, 4
or eax, ebx
je 0x4d4b72
mov al, 1
jmp 0x4d4b74
xor al, al
shl al, 5
xor al, dl
and al, 0x20
mov cl, al
xor cl, dl
mov byte [ebp + 0x52c], cl
mov eax, dword [esi + 0x118]
and eax, 0x40
or eax, ebx
je 0x4d4b96
mov al, 1
jmp 0x4d4b98
xor al, al
shl al, 6
xor al, cl
and al, 0x40
xor al, cl
mov byte [ebp + 0x52c], al
mov ecx, dword [esi + 0x118]
and ecx, 8
or ecx, ebx
je 0x4d4bb8
mov cl, 1
jmp 0x4d4bba
xor cl, cl
or dword [ebp + 0x540], 0xffffff
and al, 0x7f
shl cl, 7
or al, cl
mov byte [ebp + 0x52c], al
mov al, byte [ebp + 0x545]
and al, 0xc2
or al, 2
mov dword [ebp + 0x530], ebx
mov dword [ebp + 0x534], ebx
mov dword [ebp + 0x538], ebx
mov dword [ebp + 0x53c], ebx
mov byte [ebp + 0x544], bl
mov byte [ebp + 0x545], al
mov ecx, dword [esi + 0x118]
and ecx, 0x10
or ecx, ebx
je 0x4d4c10
mov cl, 1
jmp 0x4d4c12
xor cl, cl
shl cl, 6
xor cl, al
and cl, 0x40
xor cl, al
mov byte [ebp + 0x545], cl
mov eax, dword [esi + 0x118]
and eax, 0x100
or eax, ebx
je 0x4d4c35
mov al, 1
jmp 0x4d4c37
xor al, al
shl al, 7
and cl, 0x7f
or cl, al
mov byte [ebp + 0x545], cl
mov eax, dword [esi + 0x118]
and eax, 0x200
or eax, ebx
je 0x4d4c58
mov al, 1
jmp 0x4d4c5a
xor al, al
mov dl, byte [ebp + 0x546]
and al, 1
and dl, 0xfc
or al, dl
mov byte [ebp + 0x546], al
mov eax, 0x78
mov dword [ebp + 0x548], 0x32000
mov dword [ebp + 0x54c], eax
mov dword [ebp + 0x550], eax
mov dword [ebp + 0x554], ebx
cmp dword [esi + 0x78], ebx
je 0x4d4cac
mov eax, dword [esi + 0x118]
and eax, 2
or eax, ebx
jne 0x4d4cac
mov al, byte [esp + 0x1f]
and al, 0x7f
mov byte [ebp + 0x4f8], al
lea edi, [ebp + 0x3a4]
mov edx, edi
lea ecx, [esp + 0xe8]
call fcn.004a0d20
push 0xffffffffffffffff
push ebx
push eax
mov ecx, edi
mov byte [esp + 0x11c], 0x1e
call fcn.0040b390
mov byte [esp + 0x110], 0x1d
cmp dword [esp + 0x100], 0x10
jb 0x4d4cf5
mov eax, dword [esp + 0xec]
push eax
call fcn.0059b877
add esp, 4
test byte [ebp + 0x545], 0x40
jne 0x4d4d0b
mov eax, dword [ebp + 0x2e8]
add dword [eax + 0x1168], 1
mov ecx, dword [esi + 4]
cmp ecx, ebx
lea eax, [esi + 4]
mov dword [esp + 0x28], eax
je 0x4d4d25
cmp dword [ecx + 0x94], ebx
jg 0x4d4f08
or byte [ebp + 0x545], 0x20
cmp dword [esi + 0x78], ebx
je 0x4d4f08
mov dword [esp + 0x2c], ebx
call fcn.005d95d0
mov dword [esp + 0x30], eax
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x4c], ebx
mov byte [esp + 0x110], 0x1f
mov edi, dword [esi + 0x78]
mov eax, dword [edi + 4]
cmp eax, ebx
je 0x4d4d6f
mov ecx, dword [edi + 8]
sub ecx, eax
jne 0x4d4d74
call fcn.005b8b18
mov edx, dword [edi + 4]
mov edi, dword [esi + 0x78]
mov eax, dword [edi + 4]
cmp eax, ebx
mov dword [esp + 0x24], edx
jne 0x4d4d8b
mov dword [esp + 0x14], ebx
jmp 0x4d4d94
mov ecx, dword [edi + 8]
sub ecx, eax
mov dword [esp + 0x14], ecx
cmp eax, ebx
je 0x4d4d9f
mov ecx, dword [edi + 8]
sub ecx, eax
jne 0x4d4da4
call fcn.005b8b18
mov ecx, dword [esp + 0x14]
mov edi, dword [edi + 4]
lea edx, [esp + 0x38]
push edx
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x30]
push eax
add ecx, edx
push ecx
push edi
lea ecx, [esp + 0x5c]
call fcn.00504160
add esp, 0x10
test eax, eax
jne 0x4d4ef3
mov eax, dword [esp + 0x5c]
and eax, 0xe0000000
cmp eax, 0x20000000
jne 0x4d4ef3
push str.info
lea eax, [esp + 0x50]
call fcn.005050a0
cmp eax, ebx
mov dword [esp + 0x24], eax
je 0x4d4ef3
mov ecx, dword [eax + 0x10]
and ecx, 0xe0000000
cmp ecx, 0x20000000
jne 0x4d4ef3
mov ecx, dword [eax + 8]
mov eax, dword [eax + 4]
push ecx
push eax
lea eax, [esp + 0x74]
call fcn.0049d4d0
lea edx, [esp + 0xe8]
mov ecx, eax
call fcn.0049d520
mov eax, dword [esp + 0x44]
lea edx, [esp + 0xe8]
push edx
call fcn.004d0220
test al, al
jne 0x4d4e54
cmp dword [esi + 0xd8], ebx
je 0x4d4ef3
mov eax, dword [esp + 0x28]
cmp dword [eax], ebx
jne 0x4d4eaf
push 0x160
call fcn.0059b847
add esp, 4
mov dword [esp + 0x38], eax
cmp eax, ebx
mov byte [esp + 0x110], 0x20
je 0x4d4e88
push eax
lea edi, [esp + 0xec]
call fcn.004b4890
jmp 0x4d4e8a
xor eax, eax
cmp eax, ebx
mov dword [esp + 0x14], eax
je 0x4d4e9b
mov ecx, 1
lock xadd dword [eax], ecx
mov byte [esp + 0x110], 0x21
lea eax, [esp + 0x14]
mov dword [esp + 0x18], 1
lea edi, [ebp + 0xa8]
call fcn.0048ff00
mov dword [esp + 0x110], 0x1f
test byte [esp + 0x18], 1
je 0x4d4eda
and dword [esp + 0x18], 0xfffffffe
lea eax, [esp + 0x14]
call fcn.004cde70
mov ebx, dword [ebp + 0xa8]
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x2c]
call fcn.004b4c00
mov esi, dword [esp + 0x20]
xor ebx, ebx
lea ecx, [esp + 0x4c]
mov byte [esp + 0x110], 0x1d
call fcn.00505380
mov eax, dword [esp + 0x28]
cmp dword [ebp + 0xa8], ebx
jne 0x4d4fd6
cmp dword [eax], ebx
jne 0x4d4f65
push 0x160
call fcn.0059b847
add esp, 4
mov dword [esp + 0x38], eax
cmp eax, ebx
mov byte [esp + 0x110], 0x22
je 0x4d4f41
mov edi, dword [esp + 0x44]
push eax
call fcn.004b4890
jmp 0x4d4f43
xor eax, eax
cmp eax, ebx
mov dword [esp + 0x14], eax
je 0x4d4f54
mov edx, 1
lock xadd dword [eax], edx
mov byte [esp + 0x110], 0x23
or dword [esp + 0x18], 2
lea eax, [esp + 0x14]
mov eax, dword [eax]
cmp eax, ebx
je 0x4d4f76
mov ecx, eax
mov edx, 1
lock xadd dword [ecx], edx
mov edi, dword [ebp + 0xa8]
cmp edi, ebx
mov dword [ebp + 0xa8], eax
je 0x4d4fa0
mov eax, edi
or ecx, 0xffffffff
lock xadd dword [eax], ecx
jne 0x4d4fa0
push edi
call fcn.004b49f0
push edi
call fcn.0059b877
add esp, 4
mov dword [esp + 0x110], 0x1d
test byte [esp + 0x18], 2
je 0x4d4fd6
cmp dword [esp + 0x14], ebx
je 0x4d4fd6
mov edx, dword [esp + 0x14]
or eax, 0xffffffff
lock xadd dword [edx], eax
jne 0x4d4fd6
mov edi, edx
push edi
call fcn.004b49f0
push edi
call fcn.0059b877
add esp, 4
mov eax, dword [ebp + 0xa8]
add eax, 0x9c
push eax
lea eax, [ebp + 0x31c]
push eax
call fcn.00499250
mov eax, dword [ebp + 0xa8]
cmp dword [eax + 0x94], ebx
jle 0x4d5060
mov cl, byte [esi + 0x118]
or byte [ebp + 0x4f8], 4
add cl, cl
add cl, cl
xor cl, byte [ebp + 0x4e8]
and cl, 4
xor byte [ebp + 0x4e8], cl
mov eax, dword [eax + 0x94]
mov dword [esp + 0x24], eax
cmp eax, 0x4000
lea eax, [esp + 0x24]
jl 0x4d5035
lea eax, [esp + 0x48]
mov eax, dword [eax]
sar eax, 1
xor ecx, ecx
cmp eax, ebx
jle 0x4d5049
nop
sar eax, 1
add ecx, 1
cmp eax, ebx
jg 0x4d5040
shl ecx, 0x18
xor ecx, dword [ebp + 0x50c]
and ecx, 0x1f000000
xor dword [ebp + 0x50c], ecx
jmp 0x4d50b5
cmp dword [esi + 0x54], ebx
je 0x4d50b5
push 0x1c
call fcn.0059b847
mov edi, eax
add esp, 4
mov dword [esp + 0x38], edi
cmp edi, ebx
mov byte [esp + 0x110], 0x24
je 0x4d50a0
push 0xffffffffffffffff
add esi, 0x40
push ebx
mov dword [edi + 0x18], 0xf
mov dword [edi + 0x14], ebx
push esi
mov ecx, edi
mov byte [edi + 4], bl
call fcn.0040b390
mov ecx, edi
jmp 0x4d50a2
xor ecx, ecx
lea eax, [ebp + 0x478]
mov byte [esp + 0x110], 0x1d
call fcn.004ef310
cmp dword [ebp + 0x3d4], ebx
je 0x4d50da
cmp dword [ebp + 0x3f0], ebx
jne 0x4d50da
push 0xffffffffffffffff
push ebx
lea eax, [ebp + 0x3c0]
push eax
lea ecx, [ebp + 0x3dc]
call fcn.0040b390
mov edx, dword [esp + 0x40]
push edx
lea esi, [esp + 0xec]
call fcn.004a90b0
mov edi, esi
xor ecx, ecx
lea esi, [esp + 0x4c]
call fcn.004a8fa0
mov ebx, esi
lea edi, [esp + 0xe8]
call fcn.004d04c0
mov eax, edi
push eax
lea esi, [ebp + 0x394]
call fcn.004ef220
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0xa4]
test eax, eax
je 0x4d512e
push eax
lea eax, [ebp + 0x2f8]
call fcn.0046e400
test byte [ebp + 0x4e8], 4
je 0x4d5152
mov eax, dword [ebp + 0xa8]
mov eax, dword [eax + 0x90]
mov ebx, eax
push 0
lea eax, [ebp + 0x424]
call fcn.004d0410
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx + 0x78]
test eax, eax
je 0x4d5168
lea ecx, [ebp + 0x454]
call fcn.004ee650
cmp dword [ebp + 0x478], 0
lea edi, [ebp + 0x478]
jne 0x4d51d5
cmp dword [ebp + 0x3d4], 0
je 0x4d51d5
push 0x1c
call fcn.0059b847
mov esi, eax
add esp, 4
mov dword [esp + 0x38], esi
test esi, esi
mov byte [esp + 0x110], 0x25
je 0x4d51c2
push 0xffffffffffffffff
push 0
lea eax, [ebp + 0x3c0]
mov dword [esi + 0x18], 0xf
mov dword [esi + 0x14], 0
push eax
mov ecx, esi
mov byte [esi + 4], 0
call fcn.0040b390
jmp 0x4d51c4
xor esi, esi
mov ecx, esi
mov eax, edi
mov byte [esp + 0x110], 0x1d
call fcn.004ef310
mov edx, dword [ebx + 8]
test edx, edx
je 0x4d52ce
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4d51e5
sub eax, esi
je 0x4d52ce
push edx
lea ecx, [esp + 0xec]
call fcn.0040b0c0
lea edx, [esp + 0xe8]
push edx
lea eax, [esp + 0x70]
push eax
mov byte [esp + 0x118], 0x26
call fcn.004b3fe0
lea edi, [ebp + 0x31c]
push eax
mov esi, edi
mov byte [esp + 0x114], 0x27
call fcn.004b72c0
lea esi, [esp + 0x6c]
call fcn.004b4090
mov esi, 0x10
mov byte [esp + 0x110], 0x1d
cmp dword [esp + 0x100], esi
jb 0x4d5262
mov ecx, dword [esp + 0xec]
push ecx
call fcn.0059b877
add esp, 4
mov eax, edi
call fcn.004ee020
mov byte [eax + 0x71], 0
mov eax, edi
call fcn.004ee020
mov dl, byte [eax + 0x73]
add eax, 0x73
and dl, 0xf4
or dl, 4
mov byte [eax], dl
mov eax, dword [ebx + 8]
push eax
lea ecx, [esp + 0xec]
call fcn.0040b0c0
lea edx, [esp + 0xe8]
mov byte [esp + 0x110], 0x28
mov ecx, dword [ebp + 0xa8]
push edx
call fcn.004b6a00
mov byte [esp + 0x110], 0x1d
cmp dword [esp + 0x100], esi
jb 0x4d52ce
mov eax, dword [esp + 0xec]
push eax
call fcn.0059b877
add esp, 4
lea esi, [ebx + 0xc]
mov ebx, dword [esi + 4]
cmp ebx, dword [esi + 8]
mov dword [esp + 0x14], esi
jbe 0x4d52e2
call fcn.005b8b18
mov edi, dword [esi + 8]
cmp dword [esi + 4], edi
mov dword [esp + 0x40], edi
jbe 0x4d52f3
call fcn.005b8b18
cmp esi, esi
je 0x4d52fc
call fcn.005b8b18
cmp ebx, edi
je 0x4d546e
cmp ebx, dword [esi + 8]
jb 0x4d530e
call fcn.005b8b18
push ebx
lea ecx, [esp + 0x70]
push ecx
call fcn.004b3fe0
push eax
lea esi, [ebp + 0x31c]
mov byte [esp + 0x114], 0x29
call fcn.004b72c0
mov edi, 0x10
mov byte [esp + 0x110], 0x1d
cmp dword [esp + 0xbc], edi
jb 0x4d5353
mov edx, dword [esp + 0xa8]
push edx
call fcn.0059b877
add esp, 4
cmp dword [esp + 0xa0], edi
mov dword [esp + 0xbc], 0xf
mov dword [esp + 0xb8], 0
mov byte [esp + 0xa8], 0
jb 0x4d538a
mov eax, dword [esp + 0x8c]
push eax
call fcn.0059b877
add esp, 4
cmp dword [esp + 0x84], edi
mov dword [esp + 0xa0], 0xf
mov dword [esp + 0x9c], 0
mov byte [esp + 0x8c], 0
jb 0x4d53be
mov ecx, dword [esp + 0x70]
push ecx
call fcn.0059b877
add esp, 4
mov edi, dword [esi + 8]
cmp dword [esi + 4], edi
jbe 0x4d53cb
call fcn.005b8b18
lea eax, [edi - 0x78]
cmp eax, dword [esi + 8]
mov dword [esp + 0x3c], edi
ja 0x4d53dc
cmp eax, dword [esi + 4]
jae 0x4d53e1
call fcn.005b8b18
add edi, 0xffffff88
mov eax, esi
cmp edi, dword [eax + 8]
jb 0x4d53f0
call fcn.005b8b18
mov byte [edi + 0x71], 0
mov edi, dword [esi + 8]
cmp dword [esi + 4], edi
jbe 0x4d5401
call fcn.005b8b18
lea eax, [edi - 0x78]
cmp eax, dword [esi + 8]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], edi
ja 0x4d5416
cmp eax, dword [esi + 4]
jae 0x4d541b
call fcn.005b8b18
mov edx, dword [esp + 0x2c]
lea esi, [edi - 0x78]
cmp esi, dword [edx + 8]
jb 0x4d542c
call fcn.005b8b18
mov al, byte [esi + 0x73]
mov ecx, dword [esp + 0x14]
and al, 0xf4
or al, 4
mov byte [esi + 0x73], al
cmp ebx, dword [ecx + 8]
jb 0x4d5444
call fcn.005b8b18
mov ecx, dword [ebp + 0xa8]
push ebx
call fcn.004b6a00
mov edx, dword [esp + 0x14]
cmp ebx, dword [edx + 8]
jb 0x4d545e
call fcn.005b8b18
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x40]
add ebx, 0x1c
jmp 0x4d52f3
mov eax, dword [ebp + 0x2e8]
cmp byte [eax + 0x1c3], 0
je 0x4d5483
push ebp
call fcn.004dff00
mov eax, ebp
mov ecx, dword [esp + 0x108]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xf0]
xor ecx, esp
call fcn.005b88a9
add esp, 0x100
ret 0x10