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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffff8
mov edi, edx
mov ebp, eax
xor ebx, ebx
test edi, edi
je 0x4e39b2
mov eax, dword [ebp]
cmp eax, 0x210
jg 0x4e2d16
je 0x4e2f4a
cmp eax, 8
jg 0x4e2cf8
je 0x4e3117
sub eax, 3
je 0x4e3956
sub eax, 2
je 0x4e377c
sub eax, 2
je 0x4e2f8b
jmp 0x4e39b2
sub eax, 0x1d
je 0x4e32c6
sub eax, 0x5e
je 0x4e2dbc
sub eax, 0xad
je 0x4e2d6a
jmp 0x4e39b2
cmp eax, 0xb013
jg 0x4e2d41
je 0x4e3306
sub eax, 0xa100
je 0x4e2d5a
sub eax, 0xf0b
je 0x4e2e06
dec eax
je 0x4e32c6
jmp 0x4e39b2
sub eax, 0xb014
je 0x4e35a2
sub eax, 5
je 0x4e2f29
jmp 0x4e39b2
mov eax, ebp
mov edx, edi
call fcn.004e221c
mov ebx, eax
jmp 0x4e39b2
xor edx, edx
mov eax, edi
call fcn.004e2178
test al, al
je 0x4e2d7e
mov bl, 1
jmp 0x4e39b2
call fcn.0042ed24
test al, al
je 0x4e39b2
mov eax, dword [edi + 0x44]
mov edx, dword [0x44a880]
call fcn.004036a4
test al, al
je 0x4e39b2
push 0
push 0
mov eax, dword [edi + 0x44]
call fcn.004552a4
push eax
mov eax, dword [0x5b8f08]
mov eax, dword [eax]
call eax
jmp 0x4e39b2
mov eax, dword [edi + 0x44]
test eax, eax
je 0x4e39b2
cmp dword [eax + 0x7c], 0
je 0x4e39b2
mov eax, edi
call fcn.004e16fc
test eax, eax
je 0x4e39b2
mov eax, edi
call fcn.004e16fc
mov al, byte [eax + 0x3c]
push eax
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x44]
mov edx, dword [edi + 0x44]
mov edx, dword [edx + 0x7c]
pop ecx
call fcn.004de0c0
jmp 0x4e39b2
mov eax, edi
call fcn.004e16fc
test eax, eax
je 0x4e39b2
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0xc4]
call fcn.0051500c
cmp al, 1
jne 0x4e39b2
cmp dword [edi + 0x44], 0
je 0x4e39b2
mov eax, dword [edi + 0x44]
test byte [eax + 0x1c], 8
jne 0x4e39b2
cmp dword [edi + 0x4c], 0
je 0x4e39b2
cmp dword [ebp + 4], 0
jne 0x4e2f19
xor edx, edx
mov eax, dword [edi + 0x4c]
mov ecx, dword [eax]
call dword [ecx + 0x40]
xor edx, edx
mov eax, dword [edi + 0x4c]
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov esi, dword [edi + 0x44]
mov eax, esi
mov edx, dword [0x44a880]
call fcn.004036a4
test al, al
je 0x4e2f1d
mov eax, esi
mov edx, dword [0x44a880]
call fcn.004036c8
mov ebp, eax
mov eax, ebp
call fcn.00451f9c
dec eax
test eax, eax
jl 0x4e2f1d
inc eax
mov dword [esp + 4], eax
xor esi, esi
mov edx, esi
mov eax, ebp
call fcn.00451f60
mov edx, dword [0x44a880]
call fcn.004036a4
test al, al
je 0x4e2eee
mov edx, esi
mov eax, ebp
call fcn.00451f60
call fcn.004555a8
test al, al
je 0x4e2eee
mov edx, esi
mov eax, ebp
call fcn.00451f60
call fcn.004552a4
xor ecx, ecx
mov edx, 0x21
call fcn.004d8f1c
jmp 0x4e2f10
push 0
mov dx, 0x21
xor eax, eax
call fcn.004077c0
push eax
mov edx, esi
mov eax, ebp
call fcn.00451f60
mov edx, 0xa100
pop ecx
call fcn.0044fb24
inc esi
dec dword [esp + 4]
jne 0x4e2ea8
jmp 0x4e2f1d
mov byte [edi + 0x28], 0
mov byte [edi + 0x80], 1
jmp 0x4e39b2
mov eax, dword [edi + 0x44]
test eax, eax
je 0x4e39b2
cmp byte [eax + 0x57], 0
je 0x4e39b2
mov eax, edi
call fcn.004e18a4
jmp 0x4e39b2
mov esi, dword [edi + 0x44]
mov eax, esi
mov edx, dword [0x44a880]
call fcn.004036a4
test al, al
je 0x4e39b2
mov eax, dword [ebp + 4]
and eax, 0xffff
dec eax
sub eax, 2
jae 0x4e39b2
cmp word [ebp + 4], 1
jne 0x4e39b2
mov eax, esi
call fcn.004d42e8
jmp 0x4e39b2
mov eax, dword [edi + 0x44]
mov edx, dword [0x44a880]
call fcn.004036a4
test al, al
je 0x4e39b2
xor edx, edx
mov eax, edi
call fcn.004e2178
test al, al
je 0x4e39b2
mov eax, dword [edi + 0x44]
mov si, 0xffb8
call fcn.00403714
test al, al
je 0x4e39b2
mov eax, dword [edi + 0x44]
cmp byte [eax + 0x1a4], 0
je 0x4e39b2
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
cmp dword [eax + edx*4 + 0x40], 0x64
jne 0x4e300a
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
cmp dword [eax + edx*4 + 0x78], 0x64
je 0x4e39b2
mov byte [edi + 0x80], 1
mov byte [edi + 0x54], 1
mov eax, dword [0x5b8bb0]
mov edx, dword [edi + 0x50]
cmp edx, 0xff
ja 0x4e3028
bt dword [eax], edx
jae 0x4e39b2
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
cmp dword [eax + edx*4 + 8], 1
jle 0x4e39b2
mov byte [edi + 0x80], 1
mov byte [esp], 0
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
mov eax, dword [eax + edx*4 + 0x44]
mov edx, dword [edi + 0x44]
cmp eax, dword [edx + 0x70]
je 0x4e3099
cmp byte [edi + 0xd], 0
jne 0x4e3099
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
mov edx, dword [eax + edx*4 + 0x44]
mov eax, dword [edi + 0x44]
call fcn.0044eaf8
mov byte [esp], 1
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
mov eax, dword [eax + edx*4 + 0x48]
mov edx, dword [edi + 0x44]
mov edx, dword [edx + 0x68]
cmp eax, dword [edx + 0x18]
je 0x4e30e3
cmp byte [edi + 0xc], 0
jne 0x4e30e3
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
mov edx, dword [eax + edx*4 + 0x48]
mov eax, dword [edi + 0x44]
mov eax, dword [eax + 0x68]
call fcn.00423a84
mov byte [esp], 1
cmp byte [esp], 0
je 0x4e30fb
push 0xffffffffffffffff
push 0
mov eax, dword [edi + 0x44]
call fcn.004552a4
push eax
call sub.user32.dll_InvalidateRect
push 0
push 0
push 0x85
mov eax, dword [edi + 0x44]
call fcn.004552a4
push eax
call sub.user32.dll_SendMessageA
jmp 0x4e39b2
cmp dword [edi + 0x44], 0
je 0x4e39b2
xor edx, edx
mov eax, edi
call fcn.004e2178
test al, al
je 0x4e39b2
mov eax, dword [edi + 0x44]
mov edx, dword [0x44a880]
call fcn.004036a4
test al, al
je 0x4e39b2
mov eax, dword [edi + 0x44]
mov si, 0xffb8
call fcn.00403714
test al, al
je 0x4e39b2
mov eax, dword [edi + 0x44]
cmp byte [eax + 0x1a4], 0
je 0x4e39b2
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
cmp dword [eax + edx*4 + 0x40], 0x64
jne 0x4e31a0
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
cmp dword [eax + edx*4 + 0x78], 0x64
je 0x4e39b2
mov byte [edi + 0x80], 1
mov byte [edi + 0x54], 0
mov byte [esp], 0
mov eax, dword [0x5b8bb0]
mov edx, dword [edi + 0x50]
cmp edx, 0xff
ja 0x4e31c2
bt dword [eax], edx
jae 0x4e3265
mov eax, edi
call fcn.004e1398
test al, al
jne 0x4e3265
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
mov eax, dword [eax + edx*4 + 0xc]
mov edx, dword [edi + 0x44]
cmp eax, dword [edx + 0x70]
je 0x4e321b
cmp byte [edi + 0xd], 0
jne 0x4e321b
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
mov edx, dword [eax + edx*4 + 0xc]
mov eax, dword [edi + 0x44]
call fcn.0044eaf8
mov byte [esp], 1
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
mov eax, dword [eax + edx*4 + 0x10]
mov edx, dword [edi + 0x44]
mov edx, dword [edx + 0x68]
cmp eax, dword [edx + 0x18]
je 0x4e3265
cmp byte [edi + 0xc], 0
jne 0x4e3265
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
mov edx, dword [eax + edx*4 + 0x10]
mov eax, dword [edi + 0x44]
mov eax, dword [eax + 0x68]
call fcn.00423a84
mov byte [esp], 1
mov eax, dword [edi + 0x44]
cmp byte [eax + 0x57], 0
je 0x4e39b2
mov eax, dword [0x5b8bb0]
mov edx, dword [edi + 0x50]
cmp edx, 0xff
ja 0x4e3285
bt dword [eax], edx
jae 0x4e39b2
mov byte [edi + 0x80], 1
cmp byte [esp], 0
je 0x4e32aa
push 0xffffffffffffffff
push 0
mov eax, dword [edi + 0x44]
call fcn.004552a4
push eax
call sub.user32.dll_InvalidateRect
push 0
push 0
push 0x85
mov eax, dword [edi + 0x44]
call fcn.004552a4
push eax
call sub.user32.dll_SendMessageA
jmp 0x4e39b2
mov byte [edi + 0x55], 0
mov byte [edi + 0x54], 0
mov esi, dword [edi + 0x44]
test esi, esi
je 0x4e39b2
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x50]
test al, al
jne 0x4e39b2
cmp dword [edi + 0x24], 0xffffffff
je 0x4e39b2
lea eax, [edi + 0x24]
call fcn.004a35e0
mov dword [edi + 0x24], 0xffffffff
jmp 0x4e39b2
mov eax, dword [edi + 0x44]
test byte [eax + 0x1c], 0x10
jne 0x4e39b2
xor edx, edx
mov eax, edi
call fcn.004e2178
test al, al
je 0x4e39b2
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0xc4]
mov edx, 1
call fcn.00514fa4
test al, al
jne 0x4e39b2
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
cmp dword [eax + edx*4 + 0x40], 0x64
jne 0x4e3377
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
cmp dword [eax + edx*4 + 0x78], 0x64
je 0x4e39b2
mov esi, dword [edi + 0x44]
test esi, esi
je 0x4e3580
mov eax, esi
mov edx, dword [0x44a880]
call fcn.004036a4
test al, al
je 0x4e3580
mov eax, dword [0x5b8b60]
cmp dword [eax], 0
je 0x4e3580
mov eax, esi
call fcn.00451f9c
dec eax
test eax, eax
jl 0x4e3424
inc eax
mov dword [esp + 4], eax
xor esi, esi
mov edx, esi
mov eax, dword [edi + 0x44]
call fcn.00451f60
mov edx, dword [0x5a80a8]
call fcn.004036a4
test al, al
je 0x4e341d
mov edx, esi
mov eax, dword [edi + 0x44]
call fcn.00451f60
cmp eax, dword [edi + 0x44]
je 0x4e341d
mov edx, esi
mov eax, dword [edi + 0x44]
call fcn.00451f60
cmp eax, dword [ebp + 8]
je 0x4e341d
mov edx, esi
mov eax, dword [edi + 0x44]
call fcn.00451f60
mov eax, dword [eax + 0x198]
cmp byte [eax + 0x55], 0
je 0x4e341d
push 0
mov edx, esi
mov eax, dword [edi + 0x44]
call fcn.00451f60
xor ecx, ecx
mov edx, 0xb014
call fcn.0044fb24
inc esi
dec dword [esp + 4]
jne 0x4e33b8
mov eax, dword [0x5b8998]
mov edx, dword [edi + 0x50]
cmp edx, 0xff
ja 0x4e3437
bt dword [eax], edx
jb 0x4e343d
mov byte [edi + 0x55], 1
mov eax, dword [edi + 0x44]
call fcn.004552a4
mov edx, eax
mov eax, dword [0x5b8b60]
mov eax, dword [eax]
call fcn.00513864
mov edx, dword [0x5b8a14]
mov eax, dword [edi + 0x50]
mov ecx, eax
cmp ecx, 0xff
ja 0x4e3469
bt dword [edx], ecx
jb 0x4e347e
add eax, 0xffffffa4
sub eax, 3
jb 0x4e347e
xor ecx, ecx
xor edx, edx
mov eax, edi
call fcn.004e0598
mov eax, dword [0x5b8bb0]
mov edx, dword [edi + 0x50]
cmp edx, 0xff
ja 0x4e3491
bt dword [eax], edx
jae 0x4e39b2
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
cmp dword [eax + edx*4 + 8], 1
jle 0x4e39b2
mov byte [edi + 0x80], 1
mov byte [esp], 0
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
mov eax, dword [eax + edx*4 + 0x44]
mov edx, dword [edi + 0x44]
cmp eax, dword [edx + 0x70]
je 0x4e3502
cmp byte [edi + 0xd], 0
jne 0x4e3502
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
mov edx, dword [eax + edx*4 + 0x44]
mov eax, dword [edi + 0x44]
call fcn.0044eaf8
mov byte [esp], 1
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
mov eax, dword [eax + edx*4 + 0x48]
mov edx, dword [edi + 0x44]
mov edx, dword [edx + 0x68]
cmp eax, dword [edx + 0x18]
je 0x4e354c
cmp byte [edi + 0xc], 0
jne 0x4e354c
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
mov edx, dword [eax + edx*4 + 0x48]
mov eax, dword [edi + 0x44]
mov eax, dword [eax + 0x68]
call fcn.00423a84
mov byte [esp], 1
cmp byte [esp], 0
je 0x4e3564
push 0xffffffffffffffff
push 0
mov eax, dword [edi + 0x44]
call fcn.004552a4
push eax
call sub.user32.dll_InvalidateRect
push 0
push 0
push 0x85
mov eax, dword [edi + 0x44]
call fcn.004552a4
push eax
call sub.user32.dll_SendMessageA
jmp 0x4e39b2
mov eax, dword [0x5b8998]
mov edx, dword [edi + 0x50]
cmp edx, 0xff
ja 0x4e3593
bt dword [eax], edx
jb 0x4e39b2
mov byte [edi + 0x55], 1
jmp 0x4e39b2
mov eax, dword [edi + 0x44]
test byte [eax + 0x1c], 0x10
jne 0x4e39b2
xor edx, edx
mov eax, edi
call fcn.004e2178
test al, al
je 0x4e39b2
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0xc4]
mov edx, 1
call fcn.00514fa4
test al, al
jne 0x4e39b2
mov eax, dword [0x5b8998]
mov edx, dword [edi + 0x50]
cmp edx, 0xff
ja 0x4e35f2
bt dword [eax], edx
jb 0x4e35f8
mov byte [edi + 0x55], 0
mov edx, dword [0x5b8a14]
mov eax, dword [edi + 0x50]
mov ecx, eax
cmp ecx, 0xff
ja 0x4e360e
bt dword [edx], ecx
jb 0x4e362d
add eax, 0xffffffa4
sub eax, 3
jb 0x4e362d
cmp dword [edi + 0x24], 0xffffffff
je 0x4e362d
lea eax, [edi + 0x24]
call fcn.004a35e0
mov dword [edi + 0x24], 0xffffffff
mov byte [esp], 0
mov eax, dword [0x5b8bb0]
mov edx, dword [edi + 0x50]
cmp edx, 0xff
ja 0x4e3644
bt dword [eax], edx
jae 0x4e371b
mov eax, edi
call fcn.004e1398
test al, al
jne 0x4e371b
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
cmp dword [eax + edx*4 + 0x40], 0x64
jne 0x4e368d
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
cmp dword [eax + edx*4 + 0x78], 0x64
je 0x4e371b
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
mov eax, dword [eax + edx*4 + 0xc]
mov edx, dword [edi + 0x44]
cmp eax, dword [edx + 0x70]
je 0x4e36d1
cmp byte [edi + 0xd], 0
jne 0x4e36d1
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
mov edx, dword [eax + edx*4 + 0xc]
mov eax, dword [edi + 0x44]
call fcn.0044eaf8
mov byte [esp], 1
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
mov eax, dword [eax + edx*4 + 0x10]
mov edx, dword [edi + 0x44]
mov edx, dword [edx + 0x68]
cmp eax, dword [edx + 0x18]
je 0x4e371b
cmp byte [edi + 0xc], 0
jne 0x4e371b
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
mov edx, dword [eax + edx*4 + 0x10]
mov eax, dword [edi + 0x44]
mov eax, dword [eax + 0x68]
call fcn.00423a84
mov byte [esp], 1
mov eax, dword [edi + 0x44]
cmp byte [eax + 0x57], 0
je 0x4e39b2
mov eax, dword [0x5b8bb0]
mov edx, dword [edi + 0x50]
cmp edx, 0xff
ja 0x4e373b
bt dword [eax], edx
jae 0x4e39b2
mov byte [edi + 0x80], 1
cmp byte [esp], 0
je 0x4e3760
push 0xffffffffffffffff
push 0
mov eax, dword [edi + 0x44]
call fcn.004552a4
push eax
call sub.user32.dll_InvalidateRect
push 0
push 0
push 0x85
mov eax, dword [edi + 0x44]
call fcn.004552a4
push eax
call sub.user32.dll_SendMessageA
jmp 0x4e39b2
xor edx, edx
mov eax, edi
call fcn.004e2178
test al, al
je 0x4e39b2
mov byte [edi + 0x80], 1
mov eax, dword [edi + 0x14]
mov al, byte [eax + 8]
sub al, 1
jne 0x4e37a5
mov eax, edi
call fcn.004e0be0
mov esi, dword [edi + 0x44]
mov eax, esi
mov edx, dword [0x5a80a8]
call fcn.004036a4
test al, al
je 0x4e388e
xor edx, edx
mov eax, edi
call fcn.004e2178
test al, al
je 0x4e393f
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
call fcn.0040585c
cmp eax, dword [edi + 0x34]
jle 0x4e393f
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
cmp dword [eax + edx*4 + 0x24], 0
jle 0x4e393f
mov eax, dword [edi + 0x44]
call fcn.004c6254
test eax, eax
je 0x4e393f
mov eax, dword [edi + 0x44]
call fcn.004c6254
call fcn.00451f9c
dec eax
test eax, eax
jl 0x4e393f
inc eax
mov dword [esp + 4], eax
xor esi, esi
mov eax, dword [edi + 0x44]
call fcn.004c6254
call fcn.00451f9c
cmp esi, eax
jge 0x4e3882
mov eax, dword [edi + 0x44]
call fcn.004c6254
mov edx, esi
call fcn.00451f60
test byte [eax + 0x1c], 8
jne 0x4e3882
push 0
mov dx, 0x14
mov ax, 1
call fcn.004077c0
push eax
mov eax, dword [edi + 0x44]
call fcn.004c6254
mov edx, esi
call fcn.00451f60
mov edx, 0xa100
pop ecx
call fcn.0044fb24
inc esi
dec dword [esp + 4]
jne 0x4e3832
jmp 0x4e393f
mov eax, esi
mov edx, dword [0x44a880]
call fcn.004036a4
test al, al
je 0x4e393f
xor edx, edx
mov eax, edi
call fcn.004e2178
test al, al
je 0x4e393f
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
call fcn.0040585c
cmp eax, dword [edi + 0x34]
jle 0x4e393f
mov eax, edi
call fcn.004e16fc
mov eax, dword [eax + 0x7894]
imul edx, dword [edi + 0x34], 0x4b
cmp dword [eax + edx*4 + 0x24], 0
jle 0x4e393f
mov eax, dword [edi + 0x44]
call fcn.00451f9c
dec eax
test eax, eax
jl 0x4e393f
inc eax
mov dword [esp + 4], eax
xor esi, esi
mov eax, dword [edi + 0x44]
call fcn.00451f9c
cmp esi, eax
jge 0x4e3938
mov edx, esi
mov eax, dword [edi + 0x44]
call fcn.00451f60
test byte [eax + 0x1c], 8
jne 0x4e3938
push 0
mov dx, 0x14
mov ax, 1
call fcn.004077c0
push eax
mov edx, esi
mov eax, dword [edi + 0x44]
call fcn.00451f60
mov edx, 0xa100
pop ecx
call fcn.0044fb24
inc esi
dec dword [esp + 4]
jne 0x4e38f7
cmp dword [edi + 0x24], 0xffffffff
je 0x4e39b2
lea eax, [edi + 0x24]
call fcn.004a35e0
mov dword [edi + 0x24], 0xffffffff
jmp 0x4e39b2
mov eax, dword [edi + 0x14]
mov al, byte [eax + 8]
sub al, 1
jne 0x4e3967
mov eax, edi
call fcn.004e0be0
mov eax, edi
call fcn.004e1dec
test al, al
je 0x4e399d
mov byte [edi + 0x80], 1
mov esi, dword [edi + 0x44]
test esi, esi
je 0x4e399d
push 0
mov dx, 0x14
mov ax, 1
call fcn.004077c0
mov ecx, eax
mov edx, 0xa100
mov eax, esi
call fcn.0044fb24
cmp dword [edi + 0x24], 0xffffffff
je 0x4e39b2
lea eax, [edi + 0x24]
call fcn.004a35e0
mov dword [edi + 0x24], 0xffffffff
mov eax, ebx
pop ecx
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret