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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x278
cmp byte [edx + 0x140], 0
mov edi, edx
mov dword [esp + 0x64], ecx
je 0x637e2b
cmp dword [edi + 0x134], 0
jne 0x637ed8
mov eax, edi
mov ebx, dword [edi + 0x104]
mov esi, dword [edi + 0x108]
mov edi, dword [edi + 0x118]
mov dword [esp + 0x68], eax
test edi, edi
je 0x637e7b
mov edx, dword [eax + 0x10c]
mov ecx, dword [eax + 0x114]
mov dword [esp + 8], edi
mov edi, 0
cmp ecx, edx
mov eax, edx
mov dword [esp + 4], edx
cmovb eax, edi
mov edi, dword [esp + 8]
sub ecx, eax
mov eax, edx
sub eax, ecx
mov edx, edi
sub edx, eax
jbe 0x637e87
mov edi, edx
jmp 0x637e8f
xor ecx, ecx
mov dword [esp + 4], 0
jmp 0x637e8d
add edi, ecx
mov dword [esp + 4], edi
xor edi, edi
mov eax, dword [esp + 0x68]
lea ecx, [ecx + ecx*4]
mov eax, dword [eax + 0x110]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 4]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
mov dword [esp + 0x74], ecx
lea ecx, [edi + edi*4]
mov edi, ebx
mov dword [esp + 0x78], eax
lea ecx, [eax + ecx*8]
sub edi, esi
mov dword [esp + 0x7c], ecx
lea ecx, [esp + 0x70]
call fcn.00637a00
add eax, edi
mov edi, dword [esp + 0x68]
jne 0x63807c
mov ecx, edi
call fcn.0066ad10
mov edx, dword [ebp + 8]
mov ecx, edi
call fcn.0066af10
mov eax, dword [0x94bccc]
test eax, eax
je 0x637f01
mov eax, dword [esp + 0x64]
mov byte [eax], 4
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
movzx eax, byte [0x94ae94]
test al, al
je 0x637ef2
movzx eax, al
cmp eax, 1
je 0x637f2f
cmp eax, 2
je 0x637f6b
mov ecx, 0x94ae8c
call fcn.007d3740
test al, al
je 0x637ef2
movzx eax, al
cmp eax, 2
je 0x637f6b
mov eax, dword [0x94ae8c]
mov ecx, dword [0x94bfb8]
cmp ecx, 2
jne 0x637ef2
cmp dword [0x94bcc0], 0
mov edx, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov ecx, dword [0x94bcc8]
je 0x637f5f
mov esi, dword [ecx + 8]
dec esi
and esi, 0xfffffff8
lea edx, [esi + edx + 8]
push eax
push edx
call dword [ecx + 0x14]
add esp, 8
test al, al
je 0x637ef2
mov eax, dword [0x94ae8c]
mov edx, dword [eax + 0x20]
test edx, edx
je 0x638ce4
mov esi, dword [eax + 0x1c]
movsd xmm0, qword [eax + 0x24]
mov dword [esp + 0x1c], 0x8ad118
mov dword [esp + 0x20], 2
mov dword [esp + 0x2c], 0
lea ecx, [eax + 0x1c]
mov dword [esp + 0x34], 0x8ad0f4
mov dword [esp + 0x38], 0x41c480
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], 0x4ad420
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], edx
lea edx, [esp + 0x34]
movlps qword [esp + 0x58], xmm0
mov dword [esp + 0x60], 0
mov dword [esp + 0x24], edx
lea edx, [esp + 0x50]
mov dword [esp + 0x28], 2
mov dword [esp + 0x44], edx
lea edx, [esp + 0x1c]
mov dword [esp + 0x48], edx
lea edx, [esp + 0x44]
mov dword [esp + 0x4c], 0x8a682c
mov dword [esp + 0x10], edx
lea edx, [esp + 0x10]
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], ecx
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], eax
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 1
mov eax, dword [0x94bfb8]
cmp eax, 2
jne 0x637ef2
cmp dword [0x94bcc0], 0
mov edi, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov esi, dword [0x94bcc8]
je 0x63805b
mov eax, dword [esi + 8]
dec eax
and eax, 0xfffffff8
lea edi, [eax + edi + 8]
lea ebx, [esp + 0x70]
push ebx
push edi
call dword [esi + 0x28]
add esp, 8
test al, al
je 0x637ef2
push ebx
push edi
call dword [esi + 0x2c]
add esp, 8
jmp 0x637ef2
cmp byte [edi + 0x120], 0
lea eax, [edi + 0xa8]
mov dword [esp + 0x6c], eax
lea eax, [edi + 0xfc]
mov dword [esp + 4], eax
je 0x638912
lea esi, [esp + 0x70]
nop word cs:[eax + eax]
nop dword [eax + eax]
mov ecx, dword [esp + 4]
mov edx, esi
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0x93d1f8
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0x93d1f8
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0x93d1f8
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0x93d1f8
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0x93d1f8
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0x93d1f8
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0x93d1f8
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0x93d1f8
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0x93d1f8
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0x93d1f8
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0x93d1f8
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0x93d1f8
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0x93d1f8
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0x93d1f8
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe4], 0x93d1f8
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0x93d1f8
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 0x93d1f8
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0x93d1f8
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0x93d1f8
mov dword [esp + 0x108], 0
mov dword [esp + 0x10c], 0x93d1f8
mov dword [esp + 0x110], 0
mov dword [esp + 0x114], 0x93d1f8
mov dword [esp + 0x118], 0
mov dword [esp + 0x11c], 0x93d1f8
mov dword [esp + 0x120], 0
mov dword [esp + 0x124], 0x93d1f8
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0x93d1f8
mov dword [esp + 0x130], 0
mov dword [esp + 0x134], 0x93d1f8
mov dword [esp + 0x138], 0
mov dword [esp + 0x13c], 0x93d1f8
mov dword [esp + 0x140], 0
mov dword [esp + 0x144], 0x93d1f8
mov dword [esp + 0x148], 0
mov dword [esp + 0x14c], 0x93d1f8
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0x93d1f8
mov dword [esp + 0x158], 0
mov dword [esp + 0x15c], 0x93d1f8
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0x93d1f8
mov dword [esp + 0x168], 0
mov dword [esp + 0x16c], 0x93d1f8
mov dword [esp + 0x170], 0
mov dword [esp + 0x174], 0x93d1f8
mov dword [esp + 0x178], 0
mov dword [esp + 0x17c], 0x93d1f8
mov dword [esp + 0x180], 0
mov dword [esp + 0x184], 0x93d1f8
mov dword [esp + 0x188], 0
mov dword [esp + 0x18c], 0x93d1f8
mov dword [esp + 0x190], 0
mov dword [esp + 0x194], 0x93d1f8
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0x93d1f8
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], 0x93d1f8
mov dword [esp + 0x1a8], 0
mov dword [esp + 0x1ac], 0x93d1f8
mov dword [esp + 0x1b0], 0
mov dword [esp + 0x1b4], 0x93d1f8
mov dword [esp + 0x1b8], 0
mov dword [esp + 0x1bc], 0x93d1f8
mov dword [esp + 0x1c0], 0
mov dword [esp + 0x1c4], 0x93d1f8
mov dword [esp + 0x1c8], 0
mov dword [esp + 0x1cc], 0x93d1f8
mov dword [esp + 0x1d0], 0
mov dword [esp + 0x1d4], 0x93d1f8
mov dword [esp + 0x1d8], 0
mov dword [esp + 0x1dc], 0x93d1f8
mov dword [esp + 0x1e0], 0
mov dword [esp + 0x1e4], 0x93d1f8
mov dword [esp + 0x1e8], 0
mov dword [esp + 0x1ec], 0x93d1f8
mov dword [esp + 0x1f0], 0
mov dword [esp + 0x1f4], 0x93d1f8
mov dword [esp + 0x1f8], 0
mov dword [esp + 0x1fc], 0x93d1f8
mov dword [esp + 0x200], 0
mov dword [esp + 0x204], 0x93d1f8
mov dword [esp + 0x208], 0
mov dword [esp + 0x20c], 0x93d1f8
mov dword [esp + 0x210], 0
mov dword [esp + 0x214], 0x93d1f8
mov dword [esp + 0x218], 0
mov dword [esp + 0x21c], 0x93d1f8
mov dword [esp + 0x220], 0
mov dword [esp + 0x224], 0x93d1f8
mov dword [esp + 0x228], 0
mov dword [esp + 0x22c], 0x93d1f8
mov dword [esp + 0x230], 0
mov dword [esp + 0x234], 0x93d1f8
mov dword [esp + 0x238], 0
mov dword [esp + 0x23c], 0x93d1f8
mov dword [esp + 0x240], 0
mov dword [esp + 0x244], 0x93d1f8
mov dword [esp + 0x248], 0
mov dword [esp + 0x24c], 0x93d1f8
mov dword [esp + 0x250], 0
mov dword [esp + 0x254], 0x93d1f8
mov dword [esp + 0x258], 0
mov dword [esp + 0x25c], 0x93d1f8
mov dword [esp + 0x260], 0
mov dword [esp + 0x264], 0x93d1f8
mov dword [esp + 0x268], 0
mov dword [esp + 0x26c], 0x93d1f8
call fcn.0066a810
cmp eax, 0x41
jae 0x638cab
mov edx, dword [esp + 0x6c]
lea ecx, [esp + 0x1c]
push eax
push esi
push dword [ebp + 8]
call fcn.007267c0
add esp, 0xc
movzx ebx, byte [esp + 0x1c]
cmp bl, 5
je 0x638b16
mov edx, dword [esp + 0x20]
cmp bl, 4
jne 0x638b22
mov ecx, dword [esp + 4]
mov dword [esp + 0xc], edx
call fcn.0066aad0
mov eax, dword [0x94bccc]
cmp eax, 1
ja 0x638800
movzx eax, byte [0x94ae28]
test al, al
je 0x638800
movzx eax, al
cmp eax, 1
je 0x6386b9
cmp eax, 2
je 0x6386fd
mov ecx, 0x94ae20
call fcn.007d3740
test al, al
je 0x638800
movzx eax, al
cmp eax, 2
je 0x6386fd
mov eax, dword [0x94ae20]
mov ecx, dword [0x94bfb8]
cmp ecx, 2
jne 0x638800
cmp dword [0x94bcc0], 0
mov edx, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov ecx, dword [0x94bcc8]
je 0x6386ed
mov esi, dword [ecx + 8]
dec esi
and esi, 0xfffffff8
lea edx, [esi + edx + 8]
push eax
push edx
call dword [ecx + 0x14]
add esp, 8
test al, al
je 0x638800
mov eax, dword [0x94ae20]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x638cbc
mov edx, dword [eax + 0x1c]
movsd xmm0, qword [eax + 0x24]
lea esi, [esp + 0x44]
mov dword [esp + 0x1c], 0x8aceb0
mov dword [esp + 0x20], 2
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], esi
lea esi, [esp + 0x1c]
mov dword [esp + 0x28], 1
mov dword [esp + 0x50], edx
lea edx, [esp + 0x10]
mov dword [esp + 0x54], ecx
lea ecx, [eax + 0x1c]
movlps qword [esp + 0x58], xmm0
mov dword [esp + 0x60], 0
mov dword [esp + 0x34], edx
lea edx, [esp + 0xc]
mov dword [esp + 0x38], 1
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x44], edx
lea edx, [esp + 0x50]
mov dword [esp + 0x48], 0x4631b0
mov dword [esp + 0x10], edx
lea edx, [esp + 0x34]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], 0x8a682c
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], eax
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 1
mov eax, dword [0x94bfb8]
cmp eax, 2
jne 0x638800
cmp dword [0x94bcc0], 0
mov esi, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov ebx, dword [0x94bcc8]
je 0x6387dd
mov eax, dword [ebx + 8]
dec eax
and eax, 0xfffffff8
lea esi, [eax + esi + 8]
lea eax, [esp + 0x70]
push eax
push esi
call dword [ebx + 0x28]
add esp, 8
test al, al
je 0x638800
lea eax, [esp + 0x70]
push eax
push esi
call dword [ebx + 0x2c]
add esp, 8
nop dword [eax]
mov eax, dword [edi + 0x108]
mov ebx, dword [edi + 0x104]
mov edx, edi
mov edi, dword [edi + 0x118]
xor ecx, ecx
test edi, edi
mov dword [esp + 8], eax
je 0x638850
mov eax, dword [edx + 0x10c]
mov ecx, dword [edx + 0x114]
mov edx, 0
cmp ecx, eax
mov esi, eax
cmovb esi, edx
mov edx, eax
sub ecx, esi
mov esi, edi
sub edx, ecx
sub esi, edx
ja 0x638854
add edi, ecx
mov eax, edi
jmp 0x638852
xor eax, eax
xor esi, esi
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + eax*4]
sub ebx, edx
mov edx, dword [edi + 0x110]
lea ecx, [edx + ecx*8]
lea eax, [edx + eax*8]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], eax
lea eax, [esi + esi*4]
lea esi, [esp + 0x70]
mov dword [esp + 0x78], edx
lea eax, [edx + eax*8]
mov ecx, esi
mov dword [esp + 0x7c], eax
call fcn.00637a00
add eax, ebx
je 0x637ed8
cmp dword [esp + 0xc], 0
jne 0x6380b0
mov eax, dword [0x94bccc]
mov bl, 1
mov bh, 0x17
test eax, eax
jne 0x638c6e
movzx eax, byte [0x94ae34]
test al, al
je 0x638c6e
movzx ecx, al
cmp ecx, 1
je 0x6388d7
cmp ecx, 2
jne 0x638c83
mov al, 2
mov ecx, dword [0x94ae2c]
movzx edx, al
call fcn.007580e0
test al, al
je 0x638c6e
mov esi, dword [0x94ae2c]
mov eax, dword [esi + 0x20]
test eax, eax
jne 0x638bcf
mov ecx, 0x8a6758
mov edx, 0x22
push 0x8acec0
call fcn.007c2000
cmp ebx, esi
jb 0x638b08
nop word [eax + eax]
sub ebx, esi
add esi, dword [edi + 0x100]
mov edx, dword [esp + 0x6c]
lea ecx, [esp + 0x70]
push ebx
push esi
push dword [ebp + 8]
call fcn.00726570
add esp, 0xc
movzx ebx, byte [esp + 0x70]
cmp bl, 5
je 0x638b16
mov edx, dword [esp + 0x74]
cmp bl, 4
jne 0x638b35
mov dword [esp + 0xc], edx
mov eax, dword [0x94bccc]
cmp eax, 1
ja 0x638ae0
movzx eax, byte [0x94ae4c]
test al, al
je 0x638ae0
movzx eax, al
cmp eax, 1
je 0x6389a0
cmp eax, 2
je 0x6389e4
mov ecx, 0x94ae44
call fcn.007d3740
test al, al
je 0x638ae0
movzx eax, al
cmp eax, 2
je 0x6389e4
mov eax, dword [0x94ae44]
mov ecx, dword [0x94bfb8]
cmp ecx, 2
jne 0x638ae0
cmp dword [0x94bcc0], 0
mov edx, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov ecx, dword [0x94bcc8]
je 0x6389d4
mov esi, dword [ecx + 8]
dec esi
and esi, 0xfffffff8
lea edx, [esi + edx + 8]
push eax
push edx
call dword [ecx + 0x14]
add esp, 8
test al, al
je 0x638ae0
mov eax, dword [0x94ae44]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x638cd0
mov edx, dword [eax + 0x1c]
movsd xmm0, qword [eax + 0x24]
lea esi, [esp + 0x44]
mov dword [esp + 0x1c], 0x8aceb0
mov dword [esp + 0x20], 2
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], esi
lea esi, [esp + 0x1c]
mov dword [esp + 0x28], 1
mov dword [esp + 0x50], edx
lea edx, [esp + 0x10]
mov dword [esp + 0x54], ecx
lea ecx, [eax + 0x1c]
movlps qword [esp + 0x58], xmm0
mov dword [esp + 0x60], 0
mov dword [esp + 0x34], edx
lea edx, [esp + 0xc]
mov dword [esp + 0x38], 1
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x44], edx
lea edx, [esp + 0x50]
mov dword [esp + 0x48], 0x4631b0
mov dword [esp + 0x10], edx
lea edx, [esp + 0x34]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], 0x8a682c
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], eax
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 1
mov eax, dword [0x94bfb8]
cmp eax, 2
jne 0x638ae0
cmp dword [0x94bcc0], 0
mov ebx, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov esi, dword [0x94bcc8]
je 0x638ac4
mov eax, dword [esi + 8]
dec eax
and eax, 0xfffffff8
lea ebx, [eax + ebx + 8]
lea eax, [esp + 0x70]
push eax
push ebx
call dword [esi + 0x28]
add esp, 8
test al, al
je 0x638ae0
lea eax, [esp + 0x70]
push eax
push ebx
call dword [esi + 0x2c]
add esp, 8
mov eax, dword [esp + 0xc]
mov esi, dword [edi + 0x108]
add esi, eax
mov dword [edi + 0x108], esi
mov ebx, dword [edi + 0x104]
cmp ebx, esi
je 0x638b5c
test eax, eax
je 0x638b75
cmp esi, ebx
jbe 0x638920
mov ecx, esi
mov edx, ebx
push 0x927304
call fcn.007c1b80
mov bl, 5
cmp bl, 5
jne 0x638b47
jmp 0x638c77
mov bh, byte [esp + 0x1d]
movzx eax, word [esp + 0x1e]
cmp bl, 5
jne 0x638b47
jmp 0x638c77
mov bh, byte [esp + 0x71]
movzx eax, word [esp + 0x72]
cmp bl, 5
je 0x638c77
mov ecx, dword [esp + 0x64]
mov byte [ecx], bl
mov byte [ecx + 1], bh
mov word [ecx + 2], ax
mov dword [ecx + 4], edx
jmp 0x637ef9
mov dword [edi + 0x108], 0
mov dword [edi + 0x104], 0
jmp 0x637ed8
mov eax, dword [0x94bccc]
mov bl, 1
mov bh, 0x17
test eax, eax
jne 0x638c6e
movzx eax, byte [0x94ae58]
test al, al
je 0x638c6e
movzx ecx, al
cmp ecx, 1
je 0x638ba8
cmp ecx, 2
jne 0x638c97
mov al, 2
mov ecx, dword [0x94ae50]
movzx edx, al
call fcn.007580e0
test al, al
je 0x638c6e
mov esi, dword [0x94ae50]
mov eax, dword [esi + 0x20]
test eax, eax
je 0x638cf8
mov ecx, dword [esi + 0x1c]
movsd xmm0, qword [esi + 0x24]
lea edi, [esi + 0x1c]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x20], eax
movlps qword [esp + 0x24], xmm0
mov dword [esp + 0x2c], 0
call fcn.0066a790
lea ecx, [esp + 0x44]
lea edx, [esp + 0x10]
mov dword [esp + 0x70], 0x8acefc
mov dword [esp + 0x74], 2
mov dword [esp + 0x80], 0
mov dword [esp + 0x44], eax
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x78], edx
lea edx, [esp + 0x70]
mov dword [esp + 0x14], 0x4631b0
mov dword [esp + 0x7c], 1
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x34]
mov dword [esp + 0x38], edx
lea edx, [esp + 0x50]
mov dword [esp + 0x3c], 0x8a682c
mov dword [esp + 0x50], ecx
mov ecx, esi
mov dword [esp + 0x54], 1
mov dword [esp + 0x58], edi
call fcn.007587f0
cmp bl, 5
jne 0x638b47
mov eax, dword [esp + 0x64]
mov byte [eax], 5
jmp 0x637ef9
mov ecx, 0x94ae2c
call fcn.007d3740
test al, al
jne 0x6388d7
jmp 0x638c6e
mov ecx, 0x94ae50
call fcn.007d3740
test al, al
jne 0x638ba8
jmp 0x638c6e
mov ecx, eax
mov edx, 0x40
push 0x8ace80
call fcn.007c1c40
mov ecx, 0x8a6758
mov edx, 0x22
push 0x8ace90
call fcn.007c2000
mov ecx, 0x8a6758
mov edx, 0x22
push 0x8acf84
call fcn.007c2000
mov ecx, 0x8a6758
mov edx, 0x22
push 0x8ad0fc
call fcn.007c2000
mov ecx, 0x8a6758
mov edx, 0x22
push 0x8acf94
call fcn.007c2000
int3