Function at 0x4f1650
Capabilities:
Access peb ldr_data
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x54a5c0
mov eax, dword fs:[0]
push eax
sub esp, 0xb8
mov eax, dword [0x599274]
xor eax, esp
mov dword [esp + 0xb4], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x599274]
xor eax, esp
push eax
lea eax, [esp + 0xcc]
mov dword fs:[0], eax
mov ebx, dword [esp + 0xdc]
push 0x20
push 0xe
mov dword [esp + 0x20], ecx
mov dword [esp + 0x30], ebx
call fcn.004e9640
mov edi, dword [ebx + 0x10]
mov esi, eax
cmp dword [ebx + 0xc], edi
jbe 0x4f16b2
call fcn.00511df1
mov eax, dword [ebx + 0xc]
mov ebp, dword [ebx]
mov dword [esp + 0x14], eax
cmp eax, dword [ebx + 0x10]
jbe 0x4f16c5
call fcn.00511df1
mov eax, dword [ebx]
test ebp, ebp
je 0x4f16cf
cmp ebp, eax
je 0x4f16d4
call fcn.00511df1
sub edi, dword [esp + 0x14]
sar edi, 1
mov dword [esi + 8], edi
mov edi, dword [ebx + 0x28]
cmp dword [ebx + 0x24], edi
jbe 0x4f16ea
call fcn.00511df1
mov eax, dword [ebx + 0x24]
mov ebp, dword [ebx + 0x18]
mov dword [esp + 0x14], eax
cmp eax, dword [ebx + 0x28]
jbe 0x4f16fe
call fcn.00511df1
mov eax, dword [ebx + 0x18]
test ebp, ebp
je 0x4f1709
cmp ebp, eax
je 0x4f170e
call fcn.00511df1
sub edi, dword [esp + 0x14]
sar edi, 1
shr edi, 1
mov dword [esi + 0xc], edi
mov edi, dword [ebx + 0x50]
cmp dword [ebx + 0x4c], edi
jbe 0x4f1726
call fcn.00511df1
mov ecx, ebx
mov ebx, dword [ecx + 0x4c]
mov ebp, dword [ecx + 0x40]
cmp ebx, dword [ecx + 0x50]
jbe 0x4f173c
call fcn.00511df1
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x40]
test ebp, ebp
je 0x4f1747
cmp ebp, eax
je 0x4f1750
call fcn.00511df1
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x18]
sub edi, ebx
sar edi, 1
mov dword [esi + 0x10], edi
mov eax, dword [ecx + 0x34]
mov dword [esi + 0x14], eax
mov ecx, dword [ecx + 0x38]
mov dword [esi + 0x18], ecx
mov edx, dword [edx]
test dword [edx + 0x20], 0x100000
je 0x4f17b2
mov edi, dword [esp + 0x18]
mov edx, dword [edi + 0x34]
mov ebx, eax
and ebx, edx
cmp ebx, edx
je 0x4f178c
mov edx, dword [edi + 0x38]
mov ebx, eax
and ebx, edx
cmp ebx, edx
jne 0x4f1794
mov edx, dword [edi + 0x3c]
or edx, eax
mov dword [esi + 0x14], edx
mov eax, dword [edi + 0x34]
mov edx, ecx
and edx, eax
cmp edx, eax
je 0x4f17aa
mov eax, dword [edi + 0x38]
mov edx, ecx
and edx, eax
cmp edx, eax
jne 0x4f17b2
mov eax, dword [edi + 0x3c]
or eax, ecx
mov dword [esi + 0x18], eax
mov edi, dword [esp + 0x28]
mov al, byte [edi + 0x30]
mov edx, dword [esp + 0x18]
mov byte [esi + 0x1c], al
cmp byte [edi + 0x31], 0
sete cl
mov byte [esi + 0x1d], cl
mov eax, dword [edx]
sub esi, dword [eax + 0x144]
mov dword [esp + 0x40], esi
mov esi, dword [edi + 0xc]
cmp esi, dword [edi + 0x10]
jbe 0x4f17e3
call fcn.00511df1
mov ebp, dword [edi]
mov ebx, esi
mov esi, dword [edi + 0x10]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], esi
cmp dword [edi + 0xc], esi
jbe 0x4f17fc
call fcn.00511df1
mov ecx, dword [edi]
mov dword [esp + 0x2c], ecx
test ebp, ebp
je 0x4f180c
cmp ebp, dword [esp + 0x2c]
je 0x4f1811
call fcn.00511df1
cmp ebx, esi
je 0x4f1961
test ebp, ebp
jne 0x4f1919
call fcn.00511df1
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4f1832
call fcn.00511df1
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
mov eax, dword [esi + 0x148]
mov ecx, dword [esi + 0x140]
xor edx, edx
cmp byte [ebx + 1], dl
setne dl
add esi, 0x140
sub ecx, eax
add edx, 2
mov edi, edx
cmp ecx, edi
jae 0x4f1869
sub edx, dword [esi + 4]
mov ecx, esi
add edx, eax
call fcn.004fce50
mov ebp, dword [esi + 8]
mov ecx, dword [esp + 0x1c]
add edi, ebp
mov dword [esi + 8], edi
test ecx, ecx
jne 0x4f1921
call fcn.00511df1
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4f1896
call fcn.00511df1
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
cmp byte [edx + 0xc], 0
mov al, byte [ebx]
je 0x4f18b1
mov edx, dword [edx + 4]
mov edx, dword [edx]
movzx eax, al
mov al, byte [edx + eax + 0x104]
mov byte [ebp], al
test ecx, ecx
jne 0x4f1928
call fcn.00511df1
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4f18d1
call fcn.00511df1
mov ecx, dword [esp + 0x1c]
cmp byte [ebx + 1], 0
je 0x4f1930
test ecx, ecx
jne 0x4f192c
call fcn.00511df1
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4f18f4
call fcn.00511df1
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
cmp byte [edx + 0xc], 0
mov al, byte [ebx + 1]
je 0x4f1910
mov edx, dword [edx + 4]
mov edx, dword [edx]
movzx eax, al
mov al, byte [edx + eax + 0x104]
mov byte [ebp + 1], al
mov byte [ebp + 2], 0
jmp 0x4f1934
mov eax, dword [ebp]
jmp 0x4f1828
mov eax, dword [ecx]
jmp 0x4f1888
mov eax, dword [ecx]
jmp 0x4f18c3
mov eax, dword [ecx]
jmp 0x4f18e6
mov byte [ebp + 1], 0
test ecx, ecx
jne 0x4f195d
call fcn.00511df1
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4f1949
call fcn.00511df1
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebx, 2
jmp 0x4f1802
mov eax, dword [ecx]
jmp 0x4f193f
mov esi, dword [edi + 0x24]
cmp esi, dword [edi + 0x28]
jbe 0x4f196e
call fcn.00511df1
mov eax, dword [edi + 0x18]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x28]
mov dword [esp + 0x20], esi
mov dword [esp + 0x3c], eax
cmp dword [edi + 0x24], eax
jbe 0x4f198a
call fcn.00511df1
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x44], ecx
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x4f199f
cmp esi, dword [esp + 0x44]
je 0x4f19a4
call fcn.00511df1
mov edi, dword [esp + 0x20]
cmp edi, dword [esp + 0x3c]
je 0x4f21ad
test esi, esi
jne 0x4f1a00
call fcn.00511df1
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x4f19c7
call fcn.00511df1
mov ebp, dword [esp + 0x18]
mov al, byte [ebp + 0xc]
mov cl, byte [edi]
mov bl, byte [edi + 1]
mov edx, dword [ebp + 4]
test al, al
je 0x4f19ea
mov esi, dword [edx]
movzx ecx, cl
mov cl, byte [ecx + esi + 0x104]
mov esi, dword [esp + 0x1c]
mov byte [esp + 0x34], cl
test al, al
je 0x4f1a04
mov edx, dword [edx]
movzx eax, bl
mov al, byte [eax + edx + 0x104]
jmp 0x4f1a06
mov eax, dword [esi]
jmp 0x4f19bd
mov al, bl
mov byte [esp + 0x35], al
test esi, esi
jne 0x4f1a66
call fcn.00511df1
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x4f1a1f
call fcn.00511df1
add edi, 2
test esi, esi
jne 0x4f1a6a
call fcn.00511df1
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x4f1a37
call fcn.00511df1
mov al, byte [ebp + 0xc]
mov cl, byte [edi]
mov edx, dword [ebp + 4]
test al, al
je 0x4f1a4f
mov esi, dword [edx]
movzx ecx, cl
mov cl, byte [ecx + esi + 0x104]
mov byte [esp + 0x2c], cl
test al, al
je 0x4f1a6e
movzx eax, byte [edi + 1]
mov edx, dword [edx]
mov al, byte [eax + edx + 0x104]
jmp 0x4f1a71
mov eax, dword [esi]
jmp 0x4f1a15
mov eax, dword [esi]
jmp 0x4f1a2d
mov al, byte [edi + 1]
mov byte [esp + 0x2d], al
mov eax, dword [esp + 0x1c]
xor ebp, ebp
cmp eax, ebp
jne 0x4f1cbb
call fcn.00511df1
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x4f1a94
call fcn.00511df1
add edi, 2
mov eax, 0xf
mov dword [esp + 0x20], edi
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc0], ebp
mov byte [esp + 0xb0], 0
mov dword [esp + 0xd4], ebp
mov dword [esp + 0x8c], eax
mov dword [esp + 0x88], ebp
mov byte [esp + 0x78], 0
mov esi, dword [esp + 0x18]
mov ecx, dword [esi]
test dword [ecx + 0x20], 0x200000
mov ebx, 1
mov byte [esp + 0xd4], bl
je 0x4f1cc2
movzx edx, byte [esp + 0x34]
mov al, byte [esp + 0x35]
mov cl, byte [esp + 0x2c]
mov byte [esp + 0x14], dl
movzx edx, byte [esp + 0x2d]
mov byte [esp + 0x15], al
test al, al
mov byte [esp + 0x16], 0
mov byte [esp + 0x24], cl
mov byte [esp + 0x25], dl
mov byte [esp + 0x26], 0
lea eax, [esp + 0x16]
jne 0x4f1b27
lea eax, [esp + 0x15]
push eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x98]
push ecx
mov ecx, dword [esi + 4]
call fcn.004ea0c0
push 0xffffffffffffffff
push ebp
push eax
lea ecx, [esp + 0xb8]
mov byte [esp + 0xe0], 2
call fcn.0040292e
mov edi, 0x10
mov byte [esp + 0xd4], bl
cmp dword [esp + 0xa8], edi
jb 0x4f1b7a
mov edx, dword [esp + 0x94]
push edx
call fcn.005103c7
add esp, 4
cmp byte [esp + 0x25], 0
lea eax, [esp + 0x26]
jne 0x4f1b89
lea eax, [esp + 0x25]
push eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x98]
push ecx
mov ecx, dword [esi + 4]
call fcn.004ea0c0
push 0xffffffffffffffff
push ebp
push eax
lea ecx, [esp + 0x80]
mov byte [esp + 0xe0], 3
call fcn.0040292e
mov byte [esp + 0xd4], bl
cmp dword [esp + 0xa8], edi
jb 0x4f1bd7
mov edx, dword [esp + 0x94]
push edx
call fcn.005103c7
add esp, 4
cmp dword [esp + 0xc0], ebp
jne 0x4f1c41
mov dword [esp + 0xa8], 0xf
mov byte [esp + 0x94], 0
mov dword [esp + 0xa4], ebx
mov byte [esp + 0x95], 0
push 0xffffffffffffffff
push ebp
lea eax, [esp + 0x98]
push eax
lea ecx, [esp + 0xb8]
mov byte [esp + 0xe0], 4
call fcn.0040292e
mov byte [esp + 0xd4], bl
cmp dword [esp + 0xa8], edi
jb 0x4f1c41
mov ecx, dword [esp + 0x94]
push ecx
call fcn.005103c7
add esp, 4
mov edi, dword [esp + 0x88]
cmp edi, ebp
jne 0x4f1ed1
mov dword [esp + 0xa8], 0xf
mov byte [esp + 0x94], 0
mov dword [esp + 0xa4], ebx
mov byte [esp + 0x95], 0
push 0xffffffffffffffff
push ebp
lea edx, [esp + 0x98]
push edx
lea ecx, [esp + 0x80]
mov byte [esp + 0xe0], 5
call fcn.0040292e
cmp dword [esp + 0xa8], 0x10
mov byte [esp + 0xd4], bl
jb 0x4f1eca
mov eax, dword [esp + 0x94]
push eax
call fcn.005103c7
add esp, 4
jmp 0x4f1eca
mov eax, dword [eax]
jmp 0x4f1a8a
cmp byte [esp + 0x35], 0
je 0x4f1d61
mov edx, dword [esp + 0x34]
push edx
lea ecx, [esp + 0xb4]
push ecx
lea eax, [esp + 0xb4]
push eax
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0xbc]
call fcn.004eac30
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0xb0]
mov esi, eax
cmp edx, 0x10
jae 0x4f1d0f
lea esi, [esp + 0xb0]
mov edi, dword [esp + 0xc0]
add esi, edi
cmp esi, ebp
je 0x4f1d40
mov ecx, eax
cmp edx, 0x10
jae 0x4f1d2a
lea ecx, [esp + 0xb0]
cmp ecx, esi
ja 0x4f1d40
cmp edx, 0x10
jae 0x4f1d3a
lea eax, [esp + 0xb0]
add eax, edi
cmp esi, eax
jbe 0x4f1d45
call fcn.00511df1
mov ecx, dword [esp + 0x35]
push ecx
lea eax, [esp + 0xb0]
push esi
push eax
lea edx, [esp + 0x68]
push edx
mov ecx, eax
call fcn.004eac30
jmp 0x4f1dc2
mov dword [esp + 0xa8], eax
mov al, byte [esp + 0x34]
mov byte [esp + 0x94], al
mov dword [esp + 0xa4], ebx
mov byte [esp + 0x95], 0
push 0xffffffffffffffff
push ebp
lea ecx, [esp + 0x98]
push ecx
lea ecx, [esp + 0xb8]
mov byte [esp + 0xe0], 6
call fcn.0040292e
cmp dword [esp + 0xa8], 0x10
mov byte [esp + 0xd4], bl
jb 0x4f1dc2
mov edx, dword [esp + 0x94]
push edx
call fcn.005103c7
add esp, 4
cmp byte [esp + 0x2d], 0
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x8c]
mov esi, eax
je 0x4f1e7a
cmp edi, 0x10
jae 0x4f1de3
lea esi, [esp + 0x78]
mov edx, dword [esp + 0x88]
add esi, edx
cmp esi, ebp
je 0x4f1e0e
mov ecx, eax
cmp edi, 0x10
jae 0x4f1dfb
lea ecx, [esp + 0x78]
cmp ecx, esi
ja 0x4f1e0e
cmp edi, 0x10
jae 0x4f1e08
lea eax, [esp + 0x78]
add eax, edx
cmp esi, eax
jbe 0x4f1e13
call fcn.00511df1
mov ecx, dword [esp + 0x2c]
push ecx
lea eax, [esp + 0x78]
push esi
push eax
lea edx, [esp + 0x78]
push edx
mov ecx, eax
call fcn.004eac30
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x78]
mov esi, eax
cmp edx, 0x10
jae 0x4f1e40
lea esi, [esp + 0x78]
mov edi, dword [esp + 0x88]
add esi, edi
cmp esi, ebp
je 0x4f1e6b
mov ecx, eax
cmp edx, 0x10
jae 0x4f1e58
lea ecx, [esp + 0x78]
cmp ecx, esi
ja 0x4f1e6b
cmp edx, 0x10
jae 0x4f1e65
lea eax, [esp + 0x78]
add eax, edi
cmp esi, eax
jbe 0x4f1e70
call fcn.00511df1
mov ecx, dword [esp + 0x2d]
lea edx, [esp + 0x64]
jmp 0x4f1ebb
cmp edi, 0x10
jae 0x4f1e83
lea esi, [esp + 0x78]
mov edx, dword [esp + 0x88]
add esi, edx
cmp esi, ebp
je 0x4f1eae
mov ecx, eax
cmp edi, 0x10
jae 0x4f1e9b
lea ecx, [esp + 0x78]
cmp ecx, esi
ja 0x4f1eae
cmp edi, 0x10
jae 0x4f1ea8
lea eax, [esp + 0x78]
add eax, edx
cmp esi, eax
jbe 0x4f1eb3
call fcn.00511df1
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0x54]
push ecx
push esi
lea eax, [esp + 0x7c]
push eax
push edx
mov ecx, eax
call fcn.004eac30
mov edi, dword [esp + 0x88]
cmp dword [esp + 0xc4], 0x10
mov edx, dword [esp + 0xb0]
jae 0x4f1ee9
lea edx, [esp + 0xb0]
mov ecx, dword [esp + 0xc0]
cmp edi, ecx
jae 0x4f1ef6
mov ecx, edi
mov esi, dword [esp + 0x8c]
mov ebx, dword [esp + 0x78]
mov eax, ebx
cmp esi, 0x10
jae 0x4f1f0c
lea eax, [esp + 0x78]
push ecx
push edx
push eax
call fcn.0040927b
add esp, 0xc
cmp eax, ebp
jne 0x4f1f35
mov eax, dword [esp + 0xc0]
cmp edi, eax
jb 0x4f2167
xor ecx, ecx
cmp edi, eax
setne cl
mov eax, ecx
cmp eax, ebp
jl 0x4f2167
mov eax, dword [esp + 0x18]
mov esi, dword [eax]
mov edx, dword [esp + 0xc0]
mov eax, dword [esi + 0x148]
mov ecx, dword [esi + 0x140]
add esi, 0x140
lea edi, [edi + edx + 2]
sub ecx, eax
cmp ecx, edi
jae 0x4f1f72
mov edx, edi
sub edx, dword [esi + 4]
mov ecx, esi
add edx, eax
call fcn.004fce50
mov ebx, dword [esi + 8]
add edi, ebx
mov dword [esi + 8], edi
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xb0]
mov eax, edx
cmp ecx, 0x10
jae 0x4f1f96
lea eax, [esp + 0xb0]
mov esi, dword [esp + 0xc0]
lea edi, [eax + esi]
cmp edi, ebp
je 0x4f1fca
mov eax, edx
cmp ecx, 0x10
jae 0x4f1fb2
lea eax, [esp + 0xb0]
cmp eax, edi
ja 0x4f1fca
mov eax, edx
cmp ecx, 0x10
jae 0x4f1fc4
lea eax, [esp + 0xb0]
add eax, esi
cmp edi, eax
jbe 0x4f1fdd
call fcn.00511df1
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xb0]
cmp ecx, 0x10
jb 0x4f2152
mov esi, edx
cmp edx, ebp
je 0x4f2019
mov eax, edx
cmp ecx, 0x10
jae 0x4f1ffa
lea eax, [esp + 0xb0]
cmp eax, esi
ja 0x4f2019
mov eax, edx
cmp ecx, 0x10
jae 0x4f200c
lea eax, [esp + 0xb0]
mov edx, dword [esp + 0xc0]
add eax, edx
cmp esi, eax
jbe 0x4f201e
call fcn.00511df1
sub edi, esi
mov eax, edi
cmp eax, ebp
jle 0x4f2032
push eax
push esi
push eax
push ebx
call fcn.00511c0d
add esp, 0x10
mov eax, dword [esp + 0xc0]
mov byte [ebx + eax], 0
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x78]
lea ebx, [ebx + ecx + 1]
mov ecx, dword [esp + 0x8c]
mov eax, edx
cmp ecx, 0x10
jae 0x4f205e
lea eax, [esp + 0x78]
mov esi, dword [esp + 0x88]
lea edi, [eax + esi]
cmp edi, ebp
je 0x4f208c
mov eax, edx
cmp ecx, 0x10
jae 0x4f2077
lea eax, [esp + 0x78]
cmp eax, edi
ja 0x4f208c
mov eax, edx
cmp ecx, 0x10
jae 0x4f2086
lea eax, [esp + 0x78]
add eax, esi
cmp edi, eax
jbe 0x4f209c
call fcn.00511df1
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x78]
cmp ecx, 0x10
jb 0x4f215e
mov esi, edx
cmp edx, ebp
je 0x4f20d2
mov eax, edx
cmp ecx, 0x10
jae 0x4f20b6
lea eax, [esp + 0x78]
cmp eax, esi
ja 0x4f20d2
mov eax, edx
cmp ecx, 0x10
jae 0x4f20c5
lea eax, [esp + 0x78]
mov edx, dword [esp + 0x88]
add eax, edx
cmp esi, eax
jbe 0x4f20d7
call fcn.00511df1
sub edi, esi
mov eax, edi
cmp eax, ebp
jle 0x4f20eb
push eax
push esi
push eax
push ebx
call fcn.00511c0d
add esp, 0x10
mov eax, dword [esp + 0x88]
mov byte [ebx + eax], 0
cmp dword [esp + 0x8c], 0x10
jb 0x4f210d
mov ecx, dword [esp + 0x78]
push ecx
call fcn.005103c7
add esp, 4
cmp dword [esp + 0xc4], 0x10
mov dword [esp + 0x8c], 0xf
mov dword [esp + 0x88], ebp
mov byte [esp + 0x78], 0
mov dword [esp + 0xd4], 0xffffffff
jb 0x4f1991
mov edx, dword [esp + 0xb0]
push edx
call fcn.005103c7
add esp, 4
jmp 0x4f1991
lea esi, [esp + 0xb0]
jmp 0x4f1fec
lea esi, [esp + 0x78]
jmp 0x4f20ab
cmp esi, 0x10
jb 0x4f2175
push ebx
call fcn.005103c7
add esp, 4
cmp dword [esp + 0xc4], 0x10
mov dword [esp + 0x8c], 0xf
mov dword [esp + 0x88], ebp
mov byte [esp + 0x78], 0
jb 0x4f21a6
mov eax, dword [esp + 0xb0]
push eax
call fcn.005103c7
add esp, 4
xor eax, eax
jmp 0x4f24ed
mov edi, dword [esp + 0x28]
mov esi, dword [edi + 0x4c]
cmp esi, dword [edi + 0x50]
jbe 0x4f21be
call fcn.00511df1
mov ebx, dword [edi + 0x40]
mov ebp, esi
mov esi, dword [edi + 0x50]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x3c], esi
cmp dword [edi + 0x4c], esi
jbe 0x4f21d8
call fcn.00511df1
mov ecx, dword [edi + 0x40]
mov dword [esp + 0x44], ecx
nop
test ebx, ebx
je 0x4f21ea
cmp ebx, dword [esp + 0x44]
je 0x4f21ef
call fcn.00511df1
cmp ebp, esi
je 0x4f24da
mov dword [esp + 0xa8], 0xf
mov dword [esp + 0xa4], 0
mov byte [esp + 0x94], 0
mov dword [esp + 0xd4], 7
test ebx, ebx
jne 0x4f22e4
call fcn.00511df1
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x4f2239
call fcn.00511df1
cmp byte [ebp + 1], 0
lea esi, [ebp + 1]
je 0x4f22f9
test ebx, ebx
jne 0x4f22eb
call fcn.00511df1
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x4f225f
call fcn.00511df1
mov dl, byte [ebp]
mov byte [esp + 0x14], dl
test ebx, ebx
jne 0x4f22f2
call fcn.00511df1
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x4f227f
call fcn.00511df1
mov al, byte [esi]
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0x16]
push ecx
mov ecx, dword [esi + 4]
lea edx, [esp + 0x18]
mov byte [esp + 0x19], al
push edx
lea eax, [esp + 0xb4]
push eax
mov byte [esp + 0x22], 0
call fcn.004ef910
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x9c]
mov byte [esp + 0xe0], 8
call fcn.0040292e
cmp dword [esp + 0xc4], 0x10
mov byte [esp + 0xd4], 7
jb 0x4f237c
mov ecx, dword [esp + 0xb0]
push ecx
jmp 0x4f2374
mov eax, dword [ebx]
jmp 0x4f222f
mov eax, dword [ebx]
jmp 0x4f2255
mov eax, dword [ebx]
jmp 0x4f2275
test ebx, ebx
jne 0x4f24ad
call fcn.00511df1
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x4f2312
call fcn.00511df1
test ebx, ebx
jne 0x4f24b4
call fcn.00511df1
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x4f232b
call fcn.00511df1
push esi
mov esi, dword [esp + 0x1c]
mov ecx, dword [esi + 4]
push ebp
lea edx, [esp + 0xb4]
push edx
call fcn.004ef910
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x9c]
mov byte [esp + 0xe0], 9
call fcn.0040292e
cmp dword [esp + 0xc4], 0x10
mov byte [esp + 0xd4], 7
jb 0x4f237c
mov eax, dword [esp + 0xb0]
push eax
call fcn.005103c7
add esp, 4
mov edi, dword [esp + 0xa4]
test edi, edi
je 0x4f24bf
mov esi, dword [esi]
mov eax, dword [esi + 0x148]
mov ecx, dword [esi + 0x140]
add esi, 0x140
inc edi
sub ecx, eax
cmp ecx, edi
jae 0x4f23b4
mov edx, edi
sub edx, dword [esi + 4]
mov ecx, esi
add edx, eax
call fcn.004fce50
mov ebx, dword [esi + 8]
add edi, ebx
mov dword [esi + 8], edi
cmp dword [esp + 0xa8], 0x10
mov eax, dword [esp + 0x94]
jae 0x4f23d4
lea eax, [esp + 0x94]
mov edx, dword [esp + 0xa4]
lea ecx, [esp + 0x90]
push ecx
add eax, edx
push eax
lea ecx, [esp + 0x34]
call fcn.004094d2
mov eax, dword [esp + 0x94]
mov esi, 0x10
cmp dword [esp + 0xa8], esi
jae 0x4f240b
lea eax, [esp + 0x94]
lea edx, [esp + 0x90]
push edx
push eax
lea ecx, [esp + 0x3c]
call fcn.004094d2
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
sub eax, ecx
test eax, eax
jle 0x4f2437
push eax
push ecx
push eax
push ebx
call fcn.00511c0d
add esp, 0x10
mov eax, dword [esp + 0xa4]
mov byte [ebx + eax], 0
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x4f24bb
call fcn.00511df1
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x4f245b
call fcn.00511df1
add ebp, 2
mov dword [esp + 0xd4], 0xffffffff
cmp dword [esp + 0xa8], esi
jb 0x4f2482
mov ecx, dword [esp + 0x94]
push ecx
call fcn.005103c7
add esp, 4
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0xa8], 0xf
mov dword [esp + 0xa4], 0
mov byte [esp + 0x94], 0
jmp 0x4f21e0
mov eax, dword [ebx]
jmp 0x4f2308
mov eax, dword [ebx]
jmp 0x4f2321
mov eax, dword [eax]
jmp 0x4f2451
lea ecx, [esp + 0x90]
mov dword [esp + 0xd4], 0xffffffff
call fcn.0040ba57
xor eax, eax
jmp 0x4f24ed
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov eax, dword [edx + 0x144]
add eax, dword [esp + 0x40]
mov dword [ecx + 8], eax
mov ecx, dword [esp + 0xcc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xb4]
xor ecx, esp
call fcn.00512298
add esp, 0xc4
ret 8