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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x98
mov esi, esp
mov dword [esi + 0x70], ecx
jmp 0x445326
push eax
mov edi, esp
push eax
mov edx, esp
push eax
mov ebx, esp
push eax
mov ecx, esp
push eax
mov dword [esi + 4], esp
push eax
mov dword [esi + 0x30], esp
push eax
mov dword [esi + 0x14], esp
push eax
mov dword [esi + 0x2c], esp
push eax
mov dword [esi + 0x1c], esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x18], eax
mov esp, eax
push eax
push eax
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xc], eax
mov esp, eax
push eax
mov dword [esi + 0x4c], esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 8], eax
mov esp, eax
push eax
push eax
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x10], eax
mov esp, eax
push eax
mov dword [esi + 0x8c], esp
push eax
mov dword [esi + 0x50], esp
mov eax, dword [esi + 0x70]
mov dword [edi], eax
mov eax, dword [edi]
mov eax, dword [eax + 0x48]
mov dword [edx], eax
mov eax, dword [edx]
add eax, 0x10
mov dword [esi + 0x24], ebx
mov dword [ebx], eax
mov eax, dword [edx]
mov dword [esi + 0x20], ecx
mov dword [ecx], eax
mov eax, dword [edi]
mov edi, dword [esi + 0x2c]
mov eax, dword [eax + 0x10]
mov dword [edi], eax
cmp dword [edi], 1
setbe al
test al, 1
jne 0x4453ba
jmp 0x4453c8
mov eax, dword [esi + 0x1c]
mov dword [eax], 1
jmp 0x445a1e
mov eax, dword [edx]
mov eax, dword [eax + 0x20]
mov ecx, dword [esi + 4]
mov dword [ecx], eax
mov eax, dword [edi]
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 2
and eax, 0xfffffffd
xor ecx, 0xffffffff
add eax, ecx
add eax, 1
shr eax, 1
mov ecx, dword [esi + 0x30]
mov dword [ecx], eax
mov eax, dword [ecx]
mov ecx, dword [esi + 0xc]
mov dword [ecx], eax
mov dword [ecx + 4], 0
jmp 0x4453ff
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
shld ecx, eax, 1
lea eax, [eax + eax + 1]
mov ebx, dword [esi + 0x18]
mov dword [ebx + 4], ecx
mov dword [ebx], eax
mov edx, dword [edi]
sub eax, edx
sbb ecx, 0
jb 0x445431
jmp 0x445422
jmp 0x445424
mov ebx, dword [esi + 0x14]
mov ecx, dword [esi + 0x30]
jmp 0x44542c
jmp 0x445694
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
mov edx, ecx
and edx, 1
add edx, edx
xor ecx, 1
add ecx, edx
adc eax, 0
mov edi, dword [edi]
xor edx, edx
sub ecx, edi
sbb eax, 0
jae 0x445540
jmp 0x445456
mov eax, dword [esi + 4]
mov ecx, dword [eax]
mov edx, dword [ebx]
mov eax, dword [ecx + edx*4 + 4]
mov ecx, dword [ecx + edx*4]
mov edx, dword [esi + 0x24]
mov edx, dword [edx]
mov edi, dword [esi + 0x20]
mov edi, dword [edi]
mov ebx, dword [edi]
mov edx, dword [edx]
mov ecx, dword [edx + ecx*4]
mov edi, ebx
add edi, ecx
mov eax, dword [edx + eax*4]
mov edx, ebx
add edx, eax
mov dword [esi + 0x6c], edx
mov cx, word [ebx + ecx + 0x1c]
mov dx, word [ebx + eax + 0x1c]
mov ebx, edi
mov edi, ebx
add edi, 0x2e
mov ax, cx
mov dword [esi + 0x38], edx
sub ax, dx
mov dword [esi + 0x88], ecx
mov eax, ecx
jb 0x4454aa
mov eax, dword [esi + 0x38]
movzx ecx, ax
add ecx, 0x2e
add ebx, ecx
mov dword [esi + 0x48], ebx
xor ebx, ebx
cmp ax, 0
jne 0x4454c1
xor eax, eax
jmp 0x445518
mov edx, dword [esi + 0x6c]
add edx, 0x2e
mov cl, byte [edi]
movzx eax, cl
add cl, 0xbf
mov ebx, eax
add ebx, 0x20
cmp cl, 0x1a
jb 0x4454db
mov ebx, eax
mov cl, byte [edx]
movzx eax, cl
add cl, 0xbf
mov dword [esi + 0x60], eax
add eax, 0x20
cmp cl, 0x1a
jb 0x4454f1
mov eax, dword [esi + 0x60]
mov ecx, eax
xor ecx, ebx
and ecx, 0xff
cmp ecx, 0
je 0x445502
jmp 0x44550d
add edi, 1
add edx, 1
cmp edi, dword [esi + 0x48]
jb 0x4454c7
and ebx, 0xff
and eax, 0xff
mov ecx, dword [esi + 0x88]
sub cx, word [esi + 0x38]
setb cl
sub ebx, eax
setb al
sub edi, dword [esi + 0x48]
je 0x445531
mov cl, al
and cl, 1
movzx eax, cl
cmp eax, 0
setne dl
mov ebx, dword [esi + 0x18]
movzx eax, dl
and eax, 1
mov ecx, dword [ebx]
add ecx, eax
adc dword [ebx + 4], 0
mov dword [ebx], ecx
mov eax, dword [esi + 4]
mov ecx, dword [eax]
mov eax, dword [ebx]
mov ebx, dword [ecx + eax*4]
mov eax, dword [esi + 0xc]
mov edx, dword [eax]
mov ecx, dword [ecx + edx*4]
mov eax, dword [esi + 0x24]
mov edx, dword [eax]
mov eax, dword [esi + 0x20]
mov edi, dword [eax]
mov edi, dword [edi]
mov edx, dword [edx]
mov eax, dword [edx + ecx*4]
mov ecx, edi
add ecx, eax
mov edx, dword [edx + ebx*4]
mov ebx, edi
add ebx, edx
mov dword [esi + 0x68], ebx
mov bx, word [edi + eax + 0x1c]
mov di, word [edi + edx + 0x1c]
mov edx, ecx
add edx, 0x2e
mov ax, bx
mov dword [esi + 0x34], edi
sub ax, di
mov dword [esi + 0x84], ebx
jb 0x4455a4
mov ebx, dword [esi + 0x34]
movzx eax, bx
add eax, 0x2e
add ecx, eax
xor eax, eax
cmp bx, 0
jne 0x4455b8
xor edi, edi
jmp 0x445617
mov ebx, dword [esi + 0x68]
add ebx, 0x2e
mov dword [esi + 0x44], ecx
mov cl, byte [edx]
movzx edi, cl
add cl, 0xbf
mov eax, edi
add eax, 0x20
cmp cl, 0x1a
jb 0x4455d5
mov eax, edi
mov cl, byte [ebx]
movzx edi, cl
add cl, 0xbf
mov dword [esi + 0x5c], edi
add edi, 0x20
cmp cl, 0x1a
jb 0x4455eb
mov edi, dword [esi + 0x5c]
mov ecx, edi
xor ecx, eax
and ecx, 0xff
cmp ecx, 0
je 0x4455ff
mov ecx, dword [esi + 0x44]
jmp 0x44560c
add edx, 1
add ebx, 1
mov ecx, dword [esi + 0x44]
cmp edx, ecx
jb 0x4455c1
and eax, 0xff
and edi, 0xff
mov ebx, dword [esi + 0x84]
sub bx, word [esi + 0x34]
setb bl
sub eax, edi
setb al
sub edx, ecx
je 0x44562f
mov bl, al
and bl, 1
movzx eax, bl
cmp eax, 0
mov edi, dword [esi + 0x2c]
jne 0x445649
mov ebx, dword [esi + 0x14]
mov ecx, dword [esi + 0x30]
jmp 0x445645
jmp 0x445647
jmp 0x445694
jmp 0x44564b
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov edx, dword [esi + 0xc]
mov ecx, dword [edx]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esi + 0x4c]
mov dword [ecx], eax
mov eax, dword [edi]
mov ebx, dword [esi + 0x18]
mov ecx, dword [ebx]
mov ecx, dword [eax + ecx*4]
mov edx, dword [edx]
mov dword [eax + edx*4], ecx
mov eax, dword [esi + 0x4c]
mov eax, dword [eax]
mov ecx, dword [edi]
mov edx, dword [ebx]
mov dword [ecx + edx*4], eax
mov edi, dword [esi + 0x2c]
jmp 0x44567d
jmp 0x44567f
mov ecx, dword [esi + 0x18]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [esi + 0xc]
mov dword [edx + 4], ecx
mov dword [edx], eax
jmp 0x4453ff
cmp dword [ecx], 0
jne 0x4456a6
mov eax, dword [esi + 0x1c]
jmp 0x44569e
mov dword [eax], 2
jmp 0x4456c0
mov eax, dword [ecx]
add eax, 0x2d85ff6f
sub eax, 1
sub eax, 0x2d85ff6f
mov dword [ecx], eax
mov eax, dword [esi + 0x1c]
mov dword [eax], 0
mov eax, dword [eax]
test eax, eax
je 0x4456ca
jmp 0x4456c8
jmp 0x4456cf
jmp 0x4453ef
mov eax, dword [edi]
mov ecx, eax
xor ecx, 1
and eax, 0xfffffffe
shl eax, 1
xor edx, edx
sub edx, ecx
add eax, edx
mov dword [ebx], eax
cmp dword [ebx], 0
mov eax, dword [esi + 0x1c]
jbe 0x445a18
mov eax, dword [esi + 0x10]
mov dword [eax + 4], 0
mov dword [eax], 0
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov ecx, dword [ebx]
mov eax, dword [eax + ecx*4]
mov edx, ebx
mov ebx, dword [esi + 0x8c]
mov dword [ebx], eax
mov eax, dword [edi]
mov eax, dword [eax]
mov ecx, dword [edi]
mov edx, dword [edx]
mov dword [ecx + edx*4], eax
mov eax, dword [ebx]
mov ecx, dword [edi]
mov dword [ecx], eax
jmp 0x445727
mov ebx, dword [esi + 0x14]
jmp 0x44572c
jmp 0x44572e
jmp 0x445730
jmp 0x445732
mov eax, dword [esi + 0x10]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
shld eax, ecx, 1
add ecx, ecx
add ecx, 0x92c270d1
adc eax, 0xe4f8aa40
mov edx, eax
not edx
mov edi, ecx
not edi
and edx, 0xe4f8aa40
and edi, 0x92c270d0
and eax, 0x1b0755bf
and ecx, 0x6d3d8f2f
sub ecx, edi
sbb eax, edx
mov edx, dword [esi + 8]
mov dword [edx], ecx
mov dword [edx + 4], eax
mov edx, dword [ebx]
sub ecx, edx
sbb eax, 0
setae al
test al, 1
jne 0x445786
jmp 0x44578f
jmp 0x445788
jmp 0x44578a
jmp 0x445a0c
mov eax, dword [esi + 8]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
add edx, 1
adc ecx, 0
mov edi, dword [ebx]
xor eax, eax
sub edx, edi
sbb ecx, 0
jae 0x4458ae
jmp 0x4457ae
jmp 0x4457b0
mov eax, dword [esi + 4]
mov eax, dword [eax]
mov ecx, dword [esi + 8]
mov ecx, dword [ecx]
mov edx, ecx
add edx, 0x7508e893
mov edi, edx
and edi, 1
or edx, 1
add edi, edx
mov ebx, dword [eax + edi*4 + 0x2bdc5db4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esi + 0x24]
mov ecx, dword [ecx]
mov edx, dword [esi + 0x20]
mov edi, dword [edx]
mov edi, dword [edi]
mov ecx, dword [ecx]
mov edx, dword [ecx + eax*4]
mov eax, edi
add eax, edx
mov ecx, dword [ecx + ebx*4]
mov ebx, edi
add ebx, ecx
mov dword [esi + 0x64], ebx
mov bx, word [edi + edx + 0x1c]
mov di, word [edi + ecx + 0x1c]
mov ecx, eax
add ecx, 0x2e
mov dx, bx
sub dx, di
mov dword [esi + 0x80], ebx
jb 0x445814
mov ebx, edi
mov dword [esi + 0x78], edi
movzx edi, bx
add edi, 0x2e
add eax, edi
xor edi, edi
cmp bx, 0
jne 0x44582b
xor edx, edx
jmp 0x445888
mov ebx, dword [esi + 0x64]
add ebx, 0x2e
mov dword [esi + 0x40], eax
mov dl, byte [ecx]
movzx eax, dl
add dl, 0xbf
mov edi, eax
add edi, 0x20
cmp dl, 0x1a
jb 0x445848
mov edi, eax
mov al, byte [ebx]
movzx edx, al
add al, 0xbf
mov dword [esi + 0x58], edx
add edx, 0x20
cmp al, 0x1a
jb 0x44585c
mov edx, dword [esi + 0x58]
mov eax, edx
xor eax, edi
and eax, 0xff
cmp eax, 0
je 0x44586f
mov eax, dword [esi + 0x40]
jmp 0x44587c
add ecx, 1
add ebx, 1
mov eax, dword [esi + 0x40]
cmp ecx, eax
jb 0x445834
and edi, 0xff
and edx, 0xff
mov ebx, dword [esi + 0x80]
sub bx, word [esi + 0x78]
setb bl
sub edi, edx
setb dl
sub ecx, eax
je 0x4458a0
mov bl, dl
and bl, 1
movzx eax, bl
cmp eax, 0
setne al
jmp 0x4458ae
movzx eax, al
and eax, 1
mov edx, dword [esi + 8]
mov ecx, dword [edx]
add ecx, eax
adc dword [edx + 4], 0
mov dword [edx], ecx
mov eax, dword [esi + 4]
mov eax, dword [eax]
mov ecx, dword [edx]
mov ebx, dword [eax + ecx*4]
mov ecx, dword [esi + 0x10]
mov edx, dword [ecx]
mov eax, dword [eax + edx*4]
mov ecx, dword [esi + 0x24]
mov edx, dword [ecx]
mov ecx, dword [esi + 0x20]
mov edi, dword [ecx]
mov edi, dword [edi]
mov edx, dword [edx]
mov ecx, dword [edx + eax*4]
mov eax, edi
add eax, ecx
mov edx, dword [edx + ebx*4]
mov ebx, edi
add ebx, edx
mov cx, word [edi + ecx + 0x1c]
mov di, word [edi + edx + 0x1c]
mov edx, eax
add edx, 0x2e
mov dword [esi + 0x28], edx
mov dx, cx
sub dx, di
mov dword [esi + 0x7c], ecx
jb 0x44590e
mov ecx, edi
mov dword [esi + 0x74], edi
movzx edi, cx
add edi, 0x2e
add eax, edi
xor edi, edi
cmp cx, 0
jne 0x445925
xor edx, edx
jmp 0x445985
add ebx, 0x2e
mov ecx, dword [esi + 0x28]
mov dword [esi + 0x3c], eax
mov dl, byte [ecx]
movzx eax, dl
add dl, 0xbf
mov edi, eax
add edi, 0x20
cmp dl, 0x1a
jb 0x445942
mov edi, eax
mov al, byte [ebx]
movzx edx, al
add al, 0xbf
mov dword [esi + 0x54], edx
add edx, 0x20
cmp al, 0x1a
jb 0x445956
mov edx, dword [esi + 0x54]
mov eax, edx
xor eax, edi
and eax, 0xff
cmp eax, 0
je 0x445969
mov eax, dword [esi + 0x3c]
jmp 0x445976
add ecx, 1
add ebx, 1
mov eax, dword [esi + 0x3c]
cmp ecx, eax
jb 0x44592e
mov dword [esi + 0x28], ecx
and edi, 0xff
and edx, 0xff
mov ecx, dword [esi + 0x7c]
sub cx, word [esi + 0x74]
setb bl
sub edi, edx
setb dl
sub dword [esi + 0x28], eax
je 0x44599b
mov bl, dl
and bl, 1
movzx eax, bl
cmp eax, 0
setne al
test al, 1
mov ebx, dword [esi + 0x14]
jne 0x4459b6
jmp 0x4459b0
jmp 0x4459b2
jmp 0x4459b4
jmp 0x445a0c
jmp 0x4459b8
jmp 0x4459ba
jmp 0x4459bc
mov edi, dword [esi + 4]
mov eax, dword [edi]
mov edx, dword [esi + 0x10]
mov ecx, dword [edx]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esi + 0x50]
mov dword [ecx], eax
mov ebx, dword [edi]
mov eax, dword [esi + 8]
mov ecx, dword [eax]
mov ecx, dword [ebx + ecx*4]
mov edx, dword [edx]
mov dword [ebx + edx*4], ecx
mov eax, dword [esi + 0x50]
mov eax, dword [eax]
mov ecx, dword [edi]
mov edx, dword [esi + 8]
mov edx, dword [edx]
mov dword [ecx + edx*4], eax
jmp 0x4459ee
mov ebx, dword [esi + 0x14]
jmp 0x4459f3
jmp 0x4459f5
jmp 0x4459f7
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [esi + 0x10]
mov dword [edx + 4], ecx
mov dword [edx], eax
jmp 0x445730
mov eax, dword [ebx]
sub eax, 1
mov dword [ebx], eax
jmp 0x4456e4
mov dword [eax], 0
jmp 0x445a20
jmp 0x445a22
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret