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

Disassembly:
sub esp, 0x58
push ebx
push ebp
push esi
xor esi, esi
mov ebp, ecx
push edi
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x20], esi
cmp dword [ebp + 0x4528], esi
jbe 0x44e653
lea ebx, [ebp + 0x452c]
lea edi, [ebp + 0x52c]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], ebx
cmp ecx, 0xffffffff
je 0x44e421
mov eax, dword [edi]
sub eax, esi
mov dword [esp + 0x24], eax
test eax, eax
jle 0x44e421
add eax, ecx
mov dword [esp + 0x1c], eax
cmp dword [ebp + 0x145c8], eax
jae 0x44e3f8
mov ecx, dword [ebp + 0x145c4]
push eax
push ecx
call fcn.004df30b
add esp, 8
mov dword [ebp + 0x145c4], eax
test eax, eax
jne 0x44e3ee
mov ecx, 0x5275b8
call fcn.0043d3f0
mov edx, dword [esp + 0x1c]
mov dword [ebp + 0x145c8], edx
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x6c]
mov edx, dword [ecx]
push eax
mov eax, dword [ebp + 0x145c4]
add eax, dword [esp + 0x14]
add edx, esi
push edx
push eax
call fcn.004dfe60
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov dword [esp + 0x10], ecx
push 0x40
push 0
push ebx
call fcn.004e01d0
mov ecx, dword [edi]
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x80]
mov esi, dword [edx]
mov edx, dword [edi - 4]
add eax, ecx
and eax, dword [ebp + 0x504]
add esp, 0xc
add esi, ecx
cmp edx, 6
ja case.0x44e44f.3
jmp dword [edx*4 + 0x44ea5c]
cmp edx, 2
sete dl
movzx eax, dl
mov edx, dword [ebp + 0x16608]
push eax
mov eax, dword [edi + 4]
add edx, ecx
push edx
push ebx
push eax
push esi
mov ecx, ebp
call fcn.0044b5d0
jmp case.0x44e44f.3
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
push eax
push ecx
push ebx
push edx
push esi
mov ecx, ebp
call fcn.0044b6b0
jmp case.0x44e44f.3
push eax
mov eax, dword [edi + 4]
push ebx
push eax
push esi
mov ecx, ebp
call fcn.0044d080
jmp case.0x44e44f.3
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
push eax
push ecx
push ebx
push edx
push esi
mov ecx, ebp
call fcn.0044bdf0
jmp case.0x44e44f.3
mov eax, dword [ebp + 0x16608]
add eax, ecx
mov ecx, dword [edi + 4]
push eax
push ebx
push ecx
push esi
mov ecx, ebp
call fcn.0044d250
mov eax, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x44e4d4
add dword [ebx + 0x34], eax
jmp 0x44e4d9
mov edx, dword [edi]
add dword [ebx + 0x34], edx
mov ecx, dword [esp + 0x18]
inc dword [esp + 0x14]
add ebx, 0x40
cmp dword [ecx + 0x3c], esi
jne 0x44e4f4
cmp eax, 0xffffffff
je 0x44e5b7
jmp 0x44e550
cmp eax, 0xffffffff
jne 0x44e550
mov esi, dword [edi]
test esi, esi
je 0x44e54a
cmp dword [ebp + 0x145c8], esi
jae 0x44e531
mov edx, dword [ebp + 0x145c4]
push esi
push edx
call fcn.004df30b
add esp, 8
mov dword [ebp + 0x145c4], eax
test eax, eax
jne 0x44e52b
mov ecx, 0x5275b8
call fcn.0043d3f0
mov dword [ebp + 0x145c8], esi
mov eax, dword [edi]
mov ecx, dword [esp + 0x6c]
mov edx, dword [ecx]
push eax
mov eax, dword [ebp + 0x145c4]
push edx
push eax
call fcn.004dfe60
add esp, 0xc
mov eax, dword [edi]
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x18]
mov esi, dword [ecx + 0x38]
add esi, eax
cmp dword [ebp + 0x145c8], esi
jae 0x44e58b
mov edx, dword [ebp + 0x145c4]
push esi
push edx
call fcn.004df30b
add esp, 8
mov dword [ebp + 0x145c4], eax
test eax, eax
jne 0x44e585
mov ecx, 0x5275b8
call fcn.0043d3f0
mov dword [ebp + 0x145c8], esi
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x38]
mov edx, dword [eax + 0x3c]
mov eax, dword [ebp + 0x145c4]
mov esi, dword [esp + 0x10]
push ecx
push edx
add eax, esi
push eax
call fcn.004dfe60
mov ecx, dword [esp + 0x24]
add esp, 0xc
add esi, dword [ecx + 0x38]
mov dword [esp + 0x10], esi
mov esi, dword [edi + 4]
mov eax, dword [esp + 0x20]
add esi, dword [edi]
inc eax
add edi, 0x10
mov dword [esp + 0x20], eax
cmp eax, dword [ebp + 0x4528]
jb 0x44e3a3
mov eax, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x44e653
mov edx, dword [esp + 0x70]
mov edi, dword [edx]
sub edi, esi
test edi, edi
jle 0x44e641
lea ebx, [edi + eax]
cmp dword [ebp + 0x145c8], ebx
jae 0x44e61e
mov eax, dword [ebp + 0x145c4]
push ebx
push eax
call fcn.004df30b
add esp, 8
mov dword [ebp + 0x145c4], eax
test eax, eax
jne 0x44e618
mov ecx, 0x5275b8
call fcn.0043d3f0
mov dword [ebp + 0x145c8], ebx
mov ecx, dword [esp + 0x6c]
mov edx, dword [ecx]
mov eax, dword [ebp + 0x145c4]
add eax, dword [esp + 0x10]
push edi
add edx, esi
push edx
push eax
call fcn.004dfe60
add esp, 0xc
mov dword [esp + 0x10], ebx
mov eax, ebx
mov ecx, dword [ebp + 0x145c4]
mov edx, dword [esp + 0x6c]
mov dword [edx], ecx
mov ecx, dword [esp + 0x70]
mov dword [ecx], eax
mov ecx, dword [esp + 0x14]
lea eax, [ecx - 1]
xor edx, edx
mov dword [esp + 0x70], eax
test eax, eax
jle 0x44e723
lea eax, [edx + 1]
cmp eax, ecx
mov esi, edx
jge 0x44e714
mov ecx, edx
shl ecx, 6
lea edi, [ecx + ebp]
mov ecx, eax
shl ecx, 6
lea ecx, [ecx + ebp + 0x4564]
lea esp, [esp]
mov ebx, dword [edi + 0x4560]
cmp dword [ecx - 4], ebx
jne 0x44e6b1
mov ebx, dword [ecx]
cmp ebx, dword [edi + 0x4564]
jne 0x44e6b1
mov esi, eax
inc eax
add ecx, 0x40
cmp eax, dword [esp + 0x14]
jl 0x44e690
mov dword [esp + 0x6c], esi
cmp esi, edx
je 0x44e714
mov eax, esi
sub eax, edx
inc eax
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
test ecx, ecx
jle 0x44e710
mov eax, esi
shl eax, 6
lea edx, [edi + 0x452c]
lea eax, [eax + ebp + 0x452c]
mov ebx, ecx
lea ecx, [ecx]
mov esi, edx
mov ecx, 0x10
lea edi, [esp + 0x28]
rep movsd dword es:[edi], dword [esi]
mov esi, eax
mov edi, edx
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
mov edi, eax
mov ecx, 0x10
lea esi, [esp + 0x28]
add edx, 0x40
sub eax, 0x40
sub ebx, 1
rep movsd dword es:[edi], dword [esi]
jne 0x44e6e0
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x14]
inc edx
cmp edx, dword [esp + 0x70]
jl 0x44e668
test ecx, ecx
jle 0x44ea4f
lea edx, [ebp + 0x452c]
mov dword [esp + 0x74], edx
mov dword [esp + 0x1c], ecx
lea esp, [esp]
mov esi, dword [ebp + 0x145ac]
mov edi, dword [esp + 0x74]
xor eax, eax
mov byte [esp + 0x70], 1
test esi, esi
jle 0x44e779
mov edx, dword [edi]
lea ecx, [ebp + 0x1452c]
lea ecx, [ecx]
cmp dword [ecx], edx
je 0x44e772
inc eax
add ecx, 4
cmp eax, dword [ebp + 0x145ac]
jl 0x44e760
jmp 0x44e779
mov esi, eax
mov byte [esp + 0x70], 0
lea ebx, [ebp + 0x145cc]
mov ecx, ebx
call fcn.00454560
cmp byte [ebp + 0x145b4], 0
mov byte [esp + 0x6c], 0
je 0x44e7c9
xor esi, esi
push esi
push 2
mov ecx, ebx
mov byte [esp + 0x74], 0x80
call fcn.004548a0
push esi
push 4
mov ecx, ebx
call fcn.004548a0
mov byte [esp + 0x70], 1
mov dword [ebp + 0x145ac], esi
mov dword [ebp + 0x145b0], esi
mov byte [ebp + 0x145b4], 0
jmp 0x44e7d0
cmp byte [esp + 0x70], 0
je 0x44e7e5
mov eax, dword [ebp + 0x145ac]
mov ecx, dword [edi]
mov dword [ebp + eax*4 + 0x1452c], ecx
inc dword [ebp + 0x145ac]
cmp esi, dword [ebp + 0x145b0]
je 0x44e7fd
or byte [esp + 0x6c], 0x80
lea edx, [esi + 1]
push edx
mov ecx, ebp
call fcn.0044c4c0
mov dword [ebp + 0x145b0], esi
mov eax, dword [edi + 0x34]
sub eax, dword [ebp + 0x165fc]
add eax, dword [ebp + 0x50c]
and eax, dword [ebp + 0x504]
cmp eax, 0x102
jb 0x44e829
or byte [esp + 0x6c], 0x40
sub eax, 0x102
push eax
mov ecx, ebp
call fcn.0044c4c0
cmp byte [esp + 0x70], 0
jne 0x44e844
mov eax, dword [ebp + esi*4 + 0x1456c]
cmp eax, dword [edi + 0x38]
je 0x44e854
mov ecx, dword [edi + 0x38]
or byte [esp + 0x6c], 0x20
push ecx
mov ecx, ebp
call fcn.0044c4c0
mov edx, dword [edi + 0x38]
mov dword [ebp + esi*4 + 0x1456c], edx
mov al, byte [edi + 4]
test al, al
je 0x44e8a2
or byte [esp + 0x6c], 0x10
movzx eax, al
push eax
push 7
mov ecx, ebx
call fcn.004548a0
mov ebx, 1
lea esi, [edi + 8]
mov dword [esp + 0x20], 7
test byte [edi + 4], bl
je 0x44e896
mov ecx, dword [esi]
push ecx
mov ecx, ebp
call fcn.0044c4c0
add esi, 4
rol ebx, 1
sub dword [esp + 0x20], 1
jne 0x44e887
cmp byte [esp + 0x70], 0
je 0x44e8db
mov edx, dword [edi + 0x28]
push edx
mov ecx, ebp
call fcn.0044c4c0
xor esi, esi
cmp dword [edi + 0x28], esi
jle 0x44e8db
jmp 0x44e8c0
mov eax, dword [edi + 0x24]
movzx ecx, byte [eax + esi]
push ecx
push 8
lea ecx, [ebp + 0x145cc]
call fcn.004548a0
inc esi
cmp esi, dword [edi + 0x28]
jl 0x44e8c0
mov eax, dword [edi + 0x30]
test eax, eax
je 0x44e911
or byte [esp + 0x6c], 8
push eax
mov ecx, ebp
call fcn.0044c4c0
xor esi, esi
cmp dword [edi + 0x30], esi
jle 0x44e911
mov edx, dword [edi + 0x2c]
movzx eax, byte [edx + esi]
push eax
push 8
lea ecx, [ebp + 0x145cc]
call fcn.004548a0
inc esi
cmp esi, dword [edi + 0x30]
jl 0x44e8f6
lea ecx, [ebp + 0x145cc]
call fcn.004547e0
mov ebx, dword [ebp + 0x145e0]
cmp ebx, 6
ja 0x44e931
mov cl, bl
dec cl
or byte [esp + 0x6c], cl
jmp 0x44e945
cmp ebx, 0x106
ja 0x44e940
or byte [esp + 0x6c], 6
jmp 0x44e945
or byte [esp + 0x6c], 7
cmp dword [ebp + 0x51c], 2
jne 0x44e9ca
mov edx, dword [ebp + 0x1b208]
lea esi, [ebp + 0x16614]
push edx
mov ecx, esi
call fcn.0046ca80
push 3
mov ecx, esi
call fcn.0046ca80
movzx eax, byte [esp + 0x6c]
push eax
mov ecx, esi
call fcn.0046ca80
cmp ebx, 6
jbe 0x44e9a7
cmp ebx, 0x106
ja 0x44e98b
lea ecx, [ebx - 7]
push ecx
jmp 0x44e9a0
mov edx, ebx
shr edx, 8
push edx
mov ecx, esi
call fcn.0046ca80
mov eax, ebx
and eax, 0xff
push eax
mov ecx, esi
call fcn.0046ca80
xor edi, edi
test ebx, ebx
jbe 0x44ea3f
mov ecx, dword [ebp + 0x145dc]
movzx edx, byte [edi + ecx]
push edx
mov ecx, esi
call fcn.0046ca80
inc edi
cmp edi, ebx
jb 0x44e9b1
jmp 0x44ea3f
lea eax, [ebx + 0x14]
lea esi, [ebp + 0x1b2bc]
push eax
mov ecx, esi
call fcn.00435980
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 8]
lea eax, [edx + ecx*8]
mov cl, byte [esp + 0x6c]
mov byte [eax], 7
mov byte [eax + 1], cl
mov dword [eax + 4], ebx
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, dword [esi + 0xc]
jb 0x44ea03
mov ecx, esi
call fcn.00435600
xor edi, edi
test ebx, ebx
jbe 0x44ea3f
lea esp, [esp]
mov edx, dword [ebp + 0x145dc]
mov cl, byte [edi + edx]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 8]
lea eax, [edx + eax*8]
mov byte [eax], 8
mov byte [eax + 4], cl
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, dword [esi + 0xc]
jb 0x44ea3a
mov ecx, esi
call fcn.00435600
inc edi
cmp edi, ebx
jb 0x44ea10
add dword [esp + 0x74], 0x40
sub dword [esp + 0x1c], 1
jne 0x44e740
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret 0xc