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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0x18]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x58], eax
mov eax, dword [0x5ec348]
mov dword [ebp - 0x1c], eax
xor eax, eax
lea eax, [ebx + 0x6c]
call fcn.004b1110
mov esi, eax
mov eax, dword [ebx + 0xc]
and eax, 0x4a
mov dword [ebp - 0x3c], eax
cmp eax, 0x40
je 0x4dee42
mov edi, 0xa
cmp eax, 8
je 0x4de98e
lea eax, [ebp + 0x10]
lea ecx, [ebp + 8]
mov dword [ebp - 0x2c], eax
mov dword [esp], eax
call fcn.004b3ed0
mov byte [ebp - 0x35], al
sub esp, 4
test al, al
jne 0x4dee6f
lea ecx, [ebp + 8]
call fcn.004b3f70
movzx ebx, ax
movzx eax, word [esi + 0x70]
cmp ax, bx
je 0x4de930
cmp word [esi + 0x72], bx
je 0x4de930
mov byte [ebp - 0x54], 0
movzx eax, byte [esi + 0x10]
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 0
test al, al
je 0x4de6de
cmp word [esi + 0x26], bx
je 0x4dec58
cmp word [esi + 0x24], bx
je 0x4dec58
cmp word [esi + 0x78], bx
je 0x4de9e0
cmp byte [ebp - 0x2c], 0
je 0x4dec58
cmp word [esi + 0x74], bx
je 0x4de70c
cmp word [esi + 0x76], bx
jne 0x4def1b
mov eax, dword [ebp - 0x3c]
test eax, eax
sete al
cmp edi, 0x10
sete dl
or al, dl
je 0x4def34
mov dword [ebp - 0x34], 0
mov edi, 0x10
mov byte [ebp - 0x2c], 0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x30], ecx
cmp eax, edx
jae 0x4dea30
add eax, 2
mov dword [ecx + 8], eax
mov ecx, 0xffffffff
mov word [ebp + 0xc], cx
cmp eax, edx
jae 0x4dea58
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4dea6a
cmp ax, 0xffff
mov ecx, dword [ebp + 0x10]
sete dl
cmp word [ebp + 0x14], 0xffff
sete al
mov byte [ebp - 0x30], al
test ecx, ecx
je 0x4de78b
test al, al
jne 0x4deb10
cmp dl, byte [ebp - 0x30]
jne 0x4dea80
mov byte [ebp - 0x35], 1
cmp edi, 0x10
je 0x4de9c3
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x48], edi
lea eax, [ebp - 0x21]
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov dword [esp], 0
call fcn.004ffeb0
cmp byte [esi + 0x10], 0
mov dword [ebp - 0x20], eax
jne 0x4dee4c
movzx eax, byte [ebp - 0x54]
xor edx, edx
add eax, 0x7fffffff
mov dword [ebp - 0x4c], eax
div dword [ebp - 0x48]
mov dword [ebp - 0x44], eax
movzx eax, byte [esi + 0xa4]
mov byte [ebp - 0x36], al
test al, al
jne 0x4dec68
cmp byte [ebp - 0x35], 0
mov byte [ebp - 0x3c], 0
jne 0x4defae
mov dword [ebp - 0x30], 0
add edi, 0x30
cmp dword [ebp - 0x40], 0xa
ja 0x4deaf0
cmp bx, 0x2f
jbe 0x4deb88
cmp bx, di
jae 0x4deb88
sub ebx, 0x30
mov edx, dword [ebp - 0x30]
cmp dword [ebp - 0x44], edx
jb 0x4deac0
mov eax, dword [ebp - 0x48]
imul edx, eax
mov eax, dword [ebp - 0x4c]
sub eax, ebx
cmp eax, edx
setb al
or byte [ebp - 0x3c], al
lea eax, [ebx + edx]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x30], eax
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
add dword [ebp - 0x34], 1
cmp eax, edx
jae 0x4dead5
add eax, 2
mov ecx, 0xffffffff
mov dword [ebx + 8], eax
mov word [ebp + 0xc], cx
cmp eax, edx
jae 0x4def60
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4def0f
cmp ax, 0xffff
mov ecx, dword [ebp + 0x10]
sete bl
cmp word [ebp + 0x14], 0xffff
sete al
mov edx, eax
test ecx, ecx
je 0x4de8ab
test al, al
jne 0x4dec30
cmp dl, bl
jne 0x4deb40
mov byte [ebp - 0x36], 1
mov edx, dword [ebp - 0x20]
mov edi, dword [edx - 0xc]
test edi, edi
jne 0x4deb9a
lea esi, [esi]
mov eax, dword [ebp - 0x34]
test eax, eax
jne 0x4debe7
cmp byte [ebp - 0x2c], 1
je 0x4debe7
mov eax, dword [ebp - 0x58]
mov dword [eax], 0
mov eax, dword [ebp - 0x50]
mov dword [eax], 4
cmp byte [ebp - 0x36], 0
je 0x4de8fb
mov eax, dword [ebp - 0x50]
or dword [eax], 2
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
mov eax, 0xffffffff
lock xadd dword [edx - 4], eax
test eax, eax
jle 0x4dee85
mov eax, dword [ebp - 0x1c]
sub eax, dword [0x5ec348]
jne 0x4deffd
lea esp, [ebp - 0xc]
mov eax, esi
mov edx, edi
pop ebx
pop esi
pop edi
pop ebp
ret 0x1c
cmp ax, bx
movzx eax, byte [esi + 0x10]
sete byte [ebp - 0x54]
test al, al
jne 0x4dee9b
cmp word [esi + 0x24], bx
je 0x4de6c5
mov ecx, dword [ebp + 8]
call fcn.0052e110
mov eax, dword [ebp - 0x2c]
mov ecx, 0xffffffff
mov word [ebp + 0xc], cx
lea ecx, [ebp + 8]
mov dword [esp], eax
call fcn.004b3ed0
mov byte [ebp - 0x35], al
sub esp, 4
test al, al
jne 0x4def79
lea ecx, [ebp + 8]
call fcn.004b3f70
movzx ebx, ax
movzx eax, byte [esi + 0x10]
jmp 0x4de6c5
lea eax, [ebp + 0x10]
lea ecx, [ebp + 8]
mov edi, 0x10
mov dword [ebp - 0x2c], eax
mov dword [esp], eax
call fcn.004b3ed0
mov byte [ebp - 0x35], al
sub esp, 4
test al, al
je 0x4de69b
mov byte [ebp - 0x54], 0
xor ebx, ebx
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 0
mov dword [ebp - 0x48], 0x10
mov edi, 0x16
mov dword [ebp - 0x40], 0x16
jmp 0x4de7a7
movzx eax, byte [ebp - 0x2c]
xor eax, 1
cmp edi, 0xa
sete dl
or al, dl
je 0x4de6fc
mov edx, dword [ebp - 0x3c]
cmp edi, 8
sete cl
test edx, edx
sete dl
or cl, dl
mov byte [ebp - 0x2c], cl
je 0x4dec20
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x34], 0
mov edi, 8
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
mov dword [ebp - 0x30], ecx
cmp eax, edx
jb 0x4de746
nop
mov edx, dword [ebp - 0x30]
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0x28]
mov edx, dword [ebp - 0x30]
mov eax, 0xffffffff
mov word [ebp + 0xc], ax
mov eax, dword [edx + 8]
mov edx, dword [edx + 0xc]
cmp eax, edx
jb 0x4de75d
lea esi, [esi]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx]
call dword [eax + 0x24]
cmp ax, 0xffff
jne 0x4de76a
mov dword [ebp + 8], 0
jmp 0x4de76a
mov ecx, dword [ebp + 8]
mov ebx, 0xffff
test ecx, ecx
je 0x4deaa5
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4def6c
movzx ebx, word [eax]
cmp bx, 0xffff
je 0x4def28
cmp byte [ebp - 0x2c], 0
je 0x4dec58
movzx eax, byte [esi + 0x10]
jmp 0x4de6d0
mov ebx, dword [ebp + 8]
mov byte [ebp - 0x3c], 1
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
cmp eax, edx
jb 0x4de867
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x28]
mov eax, 0xffffffff
mov edx, dword [ebx + 0xc]
mov word [ebp + 0xc], ax
mov eax, dword [ebx + 8]
jmp 0x4de876
lea eax, [ebx - 0x30]
cmp ax, 9
jbe 0x4de82a
lea eax, [ebx - 0x61]
cmp ax, 5
ja 0x4deb70
sub ebx, 0x57
jmp 0x4de82d
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4deef2
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4dee63
cmp ax, 0xffff
sete byte [ebp - 0x30]
jmp 0x4de78b
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4deb88
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4def89
movzx ebx, word [eax]
cmp bx, 0xffff
jne 0x4de80d
cmp dword [ebp - 0x40], 0xa
mov dword [ebp + 8], 0
jbe 0x4deb88
lea esi, [esi]
lea eax, [ebx - 0x41]
cmp ax, 5
ja 0x4deb88
sub ebx, 0x37
jmp 0x4de82d
mov edx, dword [ebp - 0x20]
mov byte [ebp - 0x36], 0
mov edi, dword [edx - 0xc]
test edi, edi
je 0x4de8c8
movsx eax, byte [ebp - 0x34]
lea ebx, [ebp - 0x20]
mov ecx, ebx
mov dword [esp], eax
call fcn.00502270
sub esp, 4
mov dword [esp + 8], ebx
mov eax, dword [esi + 0xc]
mov dword [esp + 4], eax
mov eax, dword [esi + 8]
mov dword [esp], eax
call fcn.0054a780
test al, al
je 0x4deecc
mov ebx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x20]
test ebx, ebx
jne 0x4debe7
cmp byte [ebp - 0x2c], 1
je 0x4debe7
mov ecx, dword [edx - 0xc]
test ecx, ecx
je 0x4de8dd
cmp byte [ebp - 0x35], 0
jne 0x4de8dd
cmp byte [ebp - 0x3c], 0
je 0x4deeb4
mov eax, dword [ebp - 0x54]
mov edi, dword [ebp - 0x58]
and eax, 1
add eax, 0x7fffffff
mov dword [edi], eax
mov eax, dword [ebp - 0x50]
mov dword [eax], 4
jmp 0x4de8ef
add dword [ebp - 0x34], 1
mov byte [ebp - 0x2c], al
jmp 0x4de732
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4def56
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4def03
cmp ax, 0xffff
sete dl
jmp 0x4de8ab
mov byte [ebp - 0x35], 0
jmp 0x4de798
cmp byte [ebp - 0x35], 0
jne 0x4defc5
mov byte [ebp - 0x3c], 0
lea edi, [esi + 0x78]
mov dword [ebp - 0x30], 0
movzx eax, byte [esi + 0x10]
test al, al
je 0x4dec92
cmp word [esi + 0x26], bx
je 0x4dede0
mov ecx, dword [ebp - 0x40]
cmp word [esi + 0x24], bx
sete al
test ecx, ecx
sete dl
or al, dl
jne 0x4deb88
mov edx, ecx
mov eax, edi
mov ecx, dword [ebp - 0x30]
jmp 0x4decc4
add eax, 2
sub edx, 1
je 0x4dedd0
cmp bx, word [eax]
jne 0x4decb8
sub eax, edi
mov dword [ebp - 0x30], ecx
mov ebx, ecx
mov edx, eax
sar edx, 1
cmp eax, 0x1e
lea ecx, [edx - 6]
mov eax, edx
cmovg eax, ecx
cmp dword [ebp - 0x44], ebx
jb 0x4ded98
mov edx, dword [ebp - 0x48]
imul ebx, edx
mov edx, dword [ebp - 0x4c]
sub edx, eax
cmp edx, ebx
setb dl
add eax, ebx
or byte [ebp - 0x3c], dl
add dword [ebp - 0x34], 1
mov dword [ebp - 0x30], eax
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
cmp eax, edx
jae 0x4dedb0
add eax, 2
mov ecx, 0xffffffff
mov dword [ebx + 8], eax
mov word [ebp + 0xc], cx
cmp eax, edx
jae 0x4def40
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4deeda
cmp ax, 0xffff
mov ecx, dword [ebp + 0x10]
sete bl
cmp word [ebp + 0x14], 0xffff
sete al
mov edx, eax
test ecx, ecx
je 0x4ded59
test al, al
jne 0x4dee10
cmp dl, bl
je 0x4de8b7
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4dee38
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4defa2
movzx ebx, word [eax]
cmp bx, 0xffff
jne 0x4dec80
mov dword [ebp + 8], 0
jmp 0x4dec80
movzx eax, byte [ebp - 0x36]
mov ebx, dword [ebp + 8]
mov byte [ebp - 0x3c], al
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
cmp eax, edx
jb 0x4ded15
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x28]
mov eax, 0xffffffff
mov edx, dword [ebx + 0xc]
mov word [ebp + 0xc], ax
mov eax, dword [ebx + 8]
jmp 0x4ded24
mov dword [ebp - 0x30], ecx
mov byte [ebp - 0x35], 0
mov byte [ebp - 0x36], 0
jmp 0x4de8b7
mov ebx, dword [ebp - 0x34]
test ebx, ebx
je 0x4def96
movsx eax, bl
lea ecx, [ebp - 0x20]
mov dword [esp], eax
call fcn.00502270
mov dword [ebp - 0x34], 0
sub esp, 4
jmp 0x4ded04
mov eax, dword [ecx + 8]
cmp eax, dword [ecx + 0xc]
jae 0x4def4c
movzx eax, word [eax]
cmp ax, 0xffff
je 0x4deee6
cmp ax, 0xffff
sete dl
jmp 0x4ded59
mov ebx, 0xffffffff
jmp 0x4dec80
mov edi, 8
jmp 0x4de67c
mov dword [esp], 0x20
lea ecx, [ebp - 0x20]
call fcn.00501ed0
sub esp, 4
jmp 0x4de7cf
mov dword [ebp + 0x10], 0
jmp 0x4deb29
mov byte [ebp - 0x54], 0
xor ebx, ebx
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 0
jmp 0x4de7a1
lea eax, [ebp - 0x21]
lea ecx, [edx - 0xc]
mov dword [esp], eax
call fcn.00500760
sub esp, 4
jmp 0x4de913
cmp word [esi + 0x26], bx
je 0x4de6c5
cmp word [esi + 0x24], bx
je 0x4de6c5
jmp 0x4de94d
mov edi, dword [ebp - 0x30]
mov eax, edi
neg eax
cmp byte [ebp - 0x54], 0
cmove eax, edi
mov edi, dword [ebp - 0x58]
mov dword [edi], eax
jmp 0x4de8ef
mov eax, dword [ebp - 0x50]
mov dword [eax], 4
jmp 0x4debcc
mov dword [ebp + 8], 0
jmp 0x4ded39
mov dword [ebp + 0x10], 0
jmp 0x4dee29
mov eax, dword [ecx]
mov byte [ebp - 0x30], dl
call dword [eax + 0x24]
movzx edx, byte [ebp - 0x30]
jmp 0x4deb1f
mov dword [ebp + 0x10], 0
jmp 0x4dec49
mov dword [ebp + 8], 0
jmp 0x4de88b
mov byte [ebp - 0x35], 0
mov byte [ebp - 0x2c], 1
jmp 0x4de798
mov dword [ebp + 8], 0
jmp 0x4deaa5
mov byte [ebp - 0x35], al
mov byte [ebp - 0x2c], 1
jmp 0x4de7a1
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x24]
jmp 0x4ded2f
mov eax, dword [ecx]
call dword [eax + 0x24]
jmp 0x4dee1f
mov eax, dword [ecx]
call dword [eax + 0x24]
jmp 0x4dec3f
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x24]
jmp 0x4de881
mov eax, dword [ecx]
call dword [eax + 0x24]
movzx ebx, ax
jmp 0x4dea9b
mov dword [ebp - 0x34], 0
mov byte [ebp - 0x2c], 0
jmp 0x4de798
mov eax, dword [ecx]
call dword [eax + 0x24]
movzx ebx, ax
jmp 0x4deb56
mov byte [ebp - 0x36], 0
mov byte [ebp - 0x35], al
jmp 0x4de8b7
mov eax, dword [ecx]
call dword [eax + 0x24]
mov ebx, eax
jmp 0x4ded7b
movzx eax, byte [ebp - 0x35]
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x35], 0
mov byte [ebp - 0x36], al
jmp 0x4de8b7
movzx eax, byte [ebp - 0x35]
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x3c], 0
mov byte [ebp - 0x36], al
mov byte [ebp - 0x35], 0
jmp 0x4de8b7
mov eax, dword [ebp - 0x20]
lea ecx, [eax - 0xc]
lea eax, [ebp - 0x21]
mov dword [esp], eax
call fcn.00500780
push edx
mov eax, dword [ebp - 0x1c]
sub eax, dword [0x5ec348]
je 0x4df006
call fcn.00497000
mov ebx, eax
jmp 0x4defe0
mov dword [esp], ebx
call fcn.00494760
nop
nop