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

Disassembly:
push 0xffffffffffffffff
push 0x540220
mov eax, dword fs:[0]
push eax
sub esp, 0xb8
mov eax, dword [0x58c584]
xor eax, esp
mov dword [esp + 0xb4], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x58c584]
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.004e20f0
mov edi, dword [ebx + 0x10]
mov esi, eax
cmp dword [ebx + 0xc], edi
jbe 0x4e9d72
call fcn.0050a3d1
mov eax, dword [ebx + 0xc]
mov ebp, dword [ebx]
mov dword [esp + 0x14], eax
cmp eax, dword [ebx + 0x10]
jbe 0x4e9d85
call fcn.0050a3d1
mov eax, dword [ebx]
test ebp, ebp
je 0x4e9d8f
cmp ebp, eax
je 0x4e9d94
call fcn.0050a3d1
sub edi, dword [esp + 0x14]
sar edi, 1
mov dword [esi + 8], edi
mov edi, dword [ebx + 0x28]
cmp dword [ebx + 0x24], edi
jbe 0x4e9daa
call fcn.0050a3d1
mov eax, dword [ebx + 0x24]
mov ebp, dword [ebx + 0x18]
mov dword [esp + 0x14], eax
cmp eax, dword [ebx + 0x28]
jbe 0x4e9dbe
call fcn.0050a3d1
mov eax, dword [ebx + 0x18]
test ebp, ebp
je 0x4e9dc9
cmp ebp, eax
je 0x4e9dce
call fcn.0050a3d1
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 0x4e9de6
call fcn.0050a3d1
mov ecx, ebx
mov ebx, dword [ecx + 0x4c]
mov ebp, dword [ecx + 0x40]
cmp ebx, dword [ecx + 0x50]
jbe 0x4e9dfc
call fcn.0050a3d1
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + 0x40]
test ebp, ebp
je 0x4e9e07
cmp ebp, eax
je 0x4e9e10
call fcn.0050a3d1
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 0x4e9e72
mov edi, dword [esp + 0x18]
mov edx, dword [edi + 0x34]
mov ebx, eax
and ebx, edx
cmp ebx, edx
je 0x4e9e4c
mov edx, dword [edi + 0x38]
mov ebx, eax
and ebx, edx
cmp ebx, edx
jne 0x4e9e54
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 0x4e9e6a
mov eax, dword [edi + 0x38]
mov edx, ecx
and edx, eax
cmp edx, eax
jne 0x4e9e72
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 0x4e9ea3
call fcn.0050a3d1
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 0x4e9ebc
call fcn.0050a3d1
mov ecx, dword [edi]
mov dword [esp + 0x2c], ecx
test ebp, ebp
je 0x4e9ecc
cmp ebp, dword [esp + 0x2c]
je 0x4e9ed1
call fcn.0050a3d1
cmp ebx, esi
je 0x4ea021
test ebp, ebp
jne 0x4e9fd9
call fcn.0050a3d1
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4e9ef2
call fcn.0050a3d1
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 0x4e9f29
sub edx, dword [esi + 4]
mov ecx, esi
add edx, eax
call fcn.004f53a0
mov ebp, dword [esi + 8]
mov ecx, dword [esp + 0x1c]
add edi, ebp
mov dword [esi + 8], edi
test ecx, ecx
jne 0x4e9fe1
call fcn.0050a3d1
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4e9f56
call fcn.0050a3d1
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
cmp byte [edx + 0xc], 0
mov al, byte [ebx]
je 0x4e9f71
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 0x4e9fe8
call fcn.0050a3d1
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4e9f91
call fcn.0050a3d1
mov ecx, dword [esp + 0x1c]
cmp byte [ebx + 1], 0
je 0x4e9ff0
test ecx, ecx
jne 0x4e9fec
call fcn.0050a3d1
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4e9fb4
call fcn.0050a3d1
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
cmp byte [edx + 0xc], 0
mov al, byte [ebx + 1]
je 0x4e9fd0
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 0x4e9ff4
mov eax, dword [ebp]
jmp 0x4e9ee8
mov eax, dword [ecx]
jmp 0x4e9f48
mov eax, dword [ecx]
jmp 0x4e9f83
mov eax, dword [ecx]
jmp 0x4e9fa6
mov byte [ebp + 1], 0
test ecx, ecx
jne 0x4ea01d
call fcn.0050a3d1
xor eax, eax
cmp ebx, dword [eax + 0x10]
jb 0x4ea009
call fcn.0050a3d1
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x1c]
add ebx, 2
jmp 0x4e9ec2
mov eax, dword [ecx]
jmp 0x4e9fff
mov esi, dword [edi + 0x24]
cmp esi, dword [edi + 0x28]
jbe 0x4ea02e
call fcn.0050a3d1
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 0x4ea04a
call fcn.0050a3d1
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x44], ecx
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x4ea05f
cmp esi, dword [esp + 0x44]
je 0x4ea064
call fcn.0050a3d1
mov edi, dword [esp + 0x20]
cmp edi, dword [esp + 0x3c]
je 0x4ea86d
test esi, esi
jne 0x4ea0c0
call fcn.0050a3d1
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x4ea087
call fcn.0050a3d1
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 0x4ea0aa
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 0x4ea0c4
mov edx, dword [edx]
movzx eax, bl
mov al, byte [eax + edx + 0x104]
jmp 0x4ea0c6
mov eax, dword [esi]
jmp 0x4ea07d
mov al, bl
mov byte [esp + 0x35], al
test esi, esi
jne 0x4ea126
call fcn.0050a3d1
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x4ea0df
call fcn.0050a3d1
add edi, 2
test esi, esi
jne 0x4ea12a
call fcn.0050a3d1
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x4ea0f7
call fcn.0050a3d1
mov al, byte [ebp + 0xc]
mov cl, byte [edi]
mov edx, dword [ebp + 4]
test al, al
je 0x4ea10f
mov esi, dword [edx]
movzx ecx, cl
mov cl, byte [ecx + esi + 0x104]
mov byte [esp + 0x2c], cl
test al, al
je 0x4ea12e
movzx eax, byte [edi + 1]
mov edx, dword [edx]
mov al, byte [eax + edx + 0x104]
jmp 0x4ea131
mov eax, dword [esi]
jmp 0x4ea0d5
mov eax, dword [esi]
jmp 0x4ea0ed
mov al, byte [edi + 1]
mov byte [esp + 0x2d], al
mov eax, dword [esp + 0x1c]
xor ebp, ebp
cmp eax, ebp
jne 0x4ea37b
call fcn.0050a3d1
xor eax, eax
cmp edi, dword [eax + 0x10]
jb 0x4ea154
call fcn.0050a3d1
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 0x4ea382
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 0x4ea1e7
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.004e2b40
push 0xffffffffffffffff
push ebp
push eax
lea ecx, [esp + 0xb8]
mov byte [esp + 0xe0], 2
call fcn.00403319
mov edi, 0x10
mov byte [esp + 0xd4], bl
cmp dword [esp + 0xa8], edi
jb 0x4ea23a
mov edx, dword [esp + 0x94]
push edx
call fcn.005089a3
add esp, 4
cmp byte [esp + 0x25], 0
lea eax, [esp + 0x26]
jne 0x4ea249
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.004e2b40
push 0xffffffffffffffff
push ebp
push eax
lea ecx, [esp + 0x80]
mov byte [esp + 0xe0], 3
call fcn.00403319
mov byte [esp + 0xd4], bl
cmp dword [esp + 0xa8], edi
jb 0x4ea297
mov edx, dword [esp + 0x94]
push edx
call fcn.005089a3
add esp, 4
cmp dword [esp + 0xc0], ebp
jne 0x4ea301
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.00403319
mov byte [esp + 0xd4], bl
cmp dword [esp + 0xa8], edi
jb 0x4ea301
mov ecx, dword [esp + 0x94]
push ecx
call fcn.005089a3
add esp, 4
mov edi, dword [esp + 0x88]
cmp edi, ebp
jne 0x4ea591
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.00403319
cmp dword [esp + 0xa8], 0x10
mov byte [esp + 0xd4], bl
jb 0x4ea58a
mov eax, dword [esp + 0x94]
push eax
call fcn.005089a3
add esp, 4
jmp 0x4ea58a
mov eax, dword [eax]
jmp 0x4ea14a
cmp byte [esp + 0x35], 0
je 0x4ea421
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.004e3680
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0xb0]
mov esi, eax
cmp edx, 0x10
jae 0x4ea3cf
lea esi, [esp + 0xb0]
mov edi, dword [esp + 0xc0]
add esi, edi
cmp esi, ebp
je 0x4ea400
mov ecx, eax
cmp edx, 0x10
jae 0x4ea3ea
lea ecx, [esp + 0xb0]
cmp ecx, esi
ja 0x4ea400
cmp edx, 0x10
jae 0x4ea3fa
lea eax, [esp + 0xb0]
add eax, edi
cmp esi, eax
jbe 0x4ea405
call fcn.0050a3d1
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.004e3680
jmp 0x4ea482
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.00403319
cmp dword [esp + 0xa8], 0x10
mov byte [esp + 0xd4], bl
jb 0x4ea482
mov edx, dword [esp + 0x94]
push edx
call fcn.005089a3
add esp, 4
cmp byte [esp + 0x2d], 0
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x8c]
mov esi, eax
je 0x4ea53a
cmp edi, 0x10
jae 0x4ea4a3
lea esi, [esp + 0x78]
mov edx, dword [esp + 0x88]
add esi, edx
cmp esi, ebp
je 0x4ea4ce
mov ecx, eax
cmp edi, 0x10
jae 0x4ea4bb
lea ecx, [esp + 0x78]
cmp ecx, esi
ja 0x4ea4ce
cmp edi, 0x10
jae 0x4ea4c8
lea eax, [esp + 0x78]
add eax, edx
cmp esi, eax
jbe 0x4ea4d3
call fcn.0050a3d1
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.004e3680
mov edx, dword [esp + 0x8c]
mov eax, dword [esp + 0x78]
mov esi, eax
cmp edx, 0x10
jae 0x4ea500
lea esi, [esp + 0x78]
mov edi, dword [esp + 0x88]
add esi, edi
cmp esi, ebp
je 0x4ea52b
mov ecx, eax
cmp edx, 0x10
jae 0x4ea518
lea ecx, [esp + 0x78]
cmp ecx, esi
ja 0x4ea52b
cmp edx, 0x10
jae 0x4ea525
lea eax, [esp + 0x78]
add eax, edi
cmp esi, eax
jbe 0x4ea530
call fcn.0050a3d1
mov ecx, dword [esp + 0x2d]
lea edx, [esp + 0x64]
jmp 0x4ea57b
cmp edi, 0x10
jae 0x4ea543
lea esi, [esp + 0x78]
mov edx, dword [esp + 0x88]
add esi, edx
cmp esi, ebp
je 0x4ea56e
mov ecx, eax
cmp edi, 0x10
jae 0x4ea55b
lea ecx, [esp + 0x78]
cmp ecx, esi
ja 0x4ea56e
cmp edi, 0x10
jae 0x4ea568
lea eax, [esp + 0x78]
add eax, edx
cmp esi, eax
jbe 0x4ea573
call fcn.0050a3d1
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.004e3680
mov edi, dword [esp + 0x88]
cmp dword [esp + 0xc4], 0x10
mov edx, dword [esp + 0xb0]
jae 0x4ea5a9
lea edx, [esp + 0xb0]
mov ecx, dword [esp + 0xc0]
cmp edi, ecx
jae 0x4ea5b6
mov ecx, edi
mov esi, dword [esp + 0x8c]
mov ebx, dword [esp + 0x78]
mov eax, ebx
cmp esi, 0x10
jae 0x4ea5cc
lea eax, [esp + 0x78]
push ecx
push edx
push eax
call fcn.0040a56e
add esp, 0xc
cmp eax, ebp
jne 0x4ea5f5
mov eax, dword [esp + 0xc0]
cmp edi, eax
jb 0x4ea827
xor ecx, ecx
cmp edi, eax
setne cl
mov eax, ecx
cmp eax, ebp
jl 0x4ea827
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 0x4ea632
mov edx, edi
sub edx, dword [esi + 4]
mov ecx, esi
add edx, eax
call fcn.004f53a0
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 0x4ea656
lea eax, [esp + 0xb0]
mov esi, dword [esp + 0xc0]
lea edi, [eax + esi]
cmp edi, ebp
je 0x4ea68a
mov eax, edx
cmp ecx, 0x10
jae 0x4ea672
lea eax, [esp + 0xb0]
cmp eax, edi
ja 0x4ea68a
mov eax, edx
cmp ecx, 0x10
jae 0x4ea684
lea eax, [esp + 0xb0]
add eax, esi
cmp edi, eax
jbe 0x4ea69d
call fcn.0050a3d1
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xb0]
cmp ecx, 0x10
jb 0x4ea812
mov esi, edx
cmp edx, ebp
je 0x4ea6d9
mov eax, edx
cmp ecx, 0x10
jae 0x4ea6ba
lea eax, [esp + 0xb0]
cmp eax, esi
ja 0x4ea6d9
mov eax, edx
cmp ecx, 0x10
jae 0x4ea6cc
lea eax, [esp + 0xb0]
mov edx, dword [esp + 0xc0]
add eax, edx
cmp esi, eax
jbe 0x4ea6de
call fcn.0050a3d1
sub edi, esi
mov eax, edi
cmp eax, ebp
jle 0x4ea6f2
push eax
push esi
push eax
push ebx
call fcn.0050a1ed
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 0x4ea71e
lea eax, [esp + 0x78]
mov esi, dword [esp + 0x88]
lea edi, [eax + esi]
cmp edi, ebp
je 0x4ea74c
mov eax, edx
cmp ecx, 0x10
jae 0x4ea737
lea eax, [esp + 0x78]
cmp eax, edi
ja 0x4ea74c
mov eax, edx
cmp ecx, 0x10
jae 0x4ea746
lea eax, [esp + 0x78]
add eax, esi
cmp edi, eax
jbe 0x4ea75c
call fcn.0050a3d1
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x78]
cmp ecx, 0x10
jb 0x4ea81e
mov esi, edx
cmp edx, ebp
je 0x4ea792
mov eax, edx
cmp ecx, 0x10
jae 0x4ea776
lea eax, [esp + 0x78]
cmp eax, esi
ja 0x4ea792
mov eax, edx
cmp ecx, 0x10
jae 0x4ea785
lea eax, [esp + 0x78]
mov edx, dword [esp + 0x88]
add eax, edx
cmp esi, eax
jbe 0x4ea797
call fcn.0050a3d1
sub edi, esi
mov eax, edi
cmp eax, ebp
jle 0x4ea7ab
push eax
push esi
push eax
push ebx
call fcn.0050a1ed
add esp, 0x10
mov eax, dword [esp + 0x88]
mov byte [ebx + eax], 0
cmp dword [esp + 0x8c], 0x10
jb 0x4ea7cd
mov ecx, dword [esp + 0x78]
push ecx
call fcn.005089a3
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 0x4ea051
mov edx, dword [esp + 0xb0]
push edx
call fcn.005089a3
add esp, 4
jmp 0x4ea051
lea esi, [esp + 0xb0]
jmp 0x4ea6ac
lea esi, [esp + 0x78]
jmp 0x4ea76b
cmp esi, 0x10
jb 0x4ea835
push ebx
call fcn.005089a3
add esp, 4
cmp dword [esp + 0xc4], 0x10
mov dword [esp + 0x8c], 0xf
mov dword [esp + 0x88], ebp
mov byte [esp + 0x78], 0
jb 0x4ea866
mov eax, dword [esp + 0xb0]
push eax
call fcn.005089a3
add esp, 4
xor eax, eax
jmp 0x4eabad
mov edi, dword [esp + 0x28]
mov esi, dword [edi + 0x4c]
cmp esi, dword [edi + 0x50]
jbe 0x4ea87e
call fcn.0050a3d1
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 0x4ea898
call fcn.0050a3d1
mov ecx, dword [edi + 0x40]
mov dword [esp + 0x44], ecx
nop
test ebx, ebx
je 0x4ea8aa
cmp ebx, dword [esp + 0x44]
je 0x4ea8af
call fcn.0050a3d1
cmp ebp, esi
je 0x4eab9a
mov dword [esp + 0xa8], 0xf
mov dword [esp + 0xa4], 0
mov byte [esp + 0x94], 0
mov dword [esp + 0xd4], 7
test ebx, ebx
jne 0x4ea9a4
call fcn.0050a3d1
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x4ea8f9
call fcn.0050a3d1
cmp byte [ebp + 1], 0
lea esi, [ebp + 1]
je 0x4ea9b9
test ebx, ebx
jne 0x4ea9ab
call fcn.0050a3d1
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x4ea91f
call fcn.0050a3d1
mov dl, byte [ebp]
mov byte [esp + 0x14], dl
test ebx, ebx
jne 0x4ea9b2
call fcn.0050a3d1
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x4ea93f
call fcn.0050a3d1
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.004e7fd0
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x9c]
mov byte [esp + 0xe0], 8
call fcn.00403319
cmp dword [esp + 0xc4], 0x10
mov byte [esp + 0xd4], 7
jb 0x4eaa3c
mov ecx, dword [esp + 0xb0]
push ecx
jmp 0x4eaa34
mov eax, dword [ebx]
jmp 0x4ea8ef
mov eax, dword [ebx]
jmp 0x4ea915
mov eax, dword [ebx]
jmp 0x4ea935
test ebx, ebx
jne 0x4eab6d
call fcn.0050a3d1
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x4ea9d2
call fcn.0050a3d1
test ebx, ebx
jne 0x4eab74
call fcn.0050a3d1
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x4ea9eb
call fcn.0050a3d1
push esi
mov esi, dword [esp + 0x1c]
mov ecx, dword [esi + 4]
push ebp
lea edx, [esp + 0xb4]
push edx
call fcn.004e7fd0
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x9c]
mov byte [esp + 0xe0], 9
call fcn.00403319
cmp dword [esp + 0xc4], 0x10
mov byte [esp + 0xd4], 7
jb 0x4eaa3c
mov eax, dword [esp + 0xb0]
push eax
call fcn.005089a3
add esp, 4
mov edi, dword [esp + 0xa4]
test edi, edi
je 0x4eab7f
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 0x4eaa74
mov edx, edi
sub edx, dword [esi + 4]
mov ecx, esi
add edx, eax
call fcn.004f53a0
mov ebx, dword [esi + 8]
add edi, ebx
mov dword [esi + 8], edi
cmp dword [esp + 0xa8], 0x10
mov eax, dword [esp + 0x94]
jae 0x4eaa94
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.0040a783
mov eax, dword [esp + 0x94]
mov esi, 0x10
cmp dword [esp + 0xa8], esi
jae 0x4eaacb
lea eax, [esp + 0x94]
lea edx, [esp + 0x90]
push edx
push eax
lea ecx, [esp + 0x3c]
call fcn.0040a783
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
sub eax, ecx
test eax, eax
jle 0x4eaaf7
push eax
push ecx
push eax
push ebx
call fcn.0050a1ed
add esp, 0x10
mov eax, dword [esp + 0xa4]
mov byte [ebx + eax], 0
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x4eab7b
call fcn.0050a3d1
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x4eab1b
call fcn.0050a3d1
add ebp, 2
mov dword [esp + 0xd4], 0xffffffff
cmp dword [esp + 0xa8], esi
jb 0x4eab42
mov ecx, dword [esp + 0x94]
push ecx
call fcn.005089a3
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 0x4ea8a0
mov eax, dword [ebx]
jmp 0x4ea9c8
mov eax, dword [ebx]
jmp 0x4ea9e1
mov eax, dword [eax]
jmp 0x4eab11
lea ecx, [esp + 0x90]
mov dword [esp + 0xd4], 0xffffffff
call fcn.00402723
xor eax, eax
jmp 0x4eabad
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.0050a878
add esp, 0xc4
ret 8