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

Disassembly:
sub esp, 0x48
xor eax, eax
push ebx
mov ebx, dword [esp + 0x54]
push esi
mov esi, dword [ebx]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
mov eax, dword [esi]
mov dword [esp + 8], eax
mov eax, dword [eax]
cmp byte [eax + 0x57], 0
mov dword [esp + 0xc], eax
mov byte [esp + 0x58], 0
jne 0x45dc59
mov eax, dword [esp + 0x5c]
push ebp
mov ebp, dword [ebx + 0x18]
lea eax, [eax + eax*2]
shl eax, 4
add ebp, eax
push edi
mov edi, dword [ebp]
add esi, 0x1f0
mov dword [esp + 0x1c], eax
mov dword [esi], 0
mov eax, dword [edi + 0xc]
push eax
push esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x20], edi
call fcn.0041f3e0
mov dword [esp + 0x48], eax
movzx eax, byte [edi]
add esp, 8
mov dword [esp + 0x44], edx
mov dword [esp + 0x20], eax
cmp eax, 0x31
jne 0x45d2c4
mov ecx, dword [esp + 0x10]
push ecx
mov esi, edi
call fcn.0042d5d0
add esp, 4
test eax, eax
jne 0x45dc57
test dword [edi + 4], 0x1000
je 0x45d299
mov edx, dword [edi + 0x14]
mov eax, dword [esp + 0x24]
push edx
push eax
call fcn.0041f1b0
jmp 0x45d2a7
mov ecx, dword [edi + 0x14]
mov edx, dword [esp + 0x24]
push ecx
push edx
call fcn.00416920
mov dword [ebp + 0x20], eax
or eax, dword [esp + 0x48]
add esp, 8
mov dword [esp + 0x38], eax
mov eax, edx
or eax, dword [esp + 0x44]
mov dword [ebp + 0x24], edx
mov dword [esp + 0x3c], eax
jmp 0x45d312
mov eax, dword [edi + 0x10]
push eax
push esi
call fcn.0041f3e0
add esp, 8
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], edx
cmp dword [edi + 0xc], 0
je 0x45d300
test dword [edi + 4], 0x41000
jne 0x45d300
cmp dword [edi + 0x14], 0
jne 0x45d300
or eax, dword [esp + 0x40]
mov dword [esp + 0x38], eax
mov eax, edx
or eax, dword [esp + 0x44]
mov dword [esp + 0x3c], eax
jmp 0x45d312
push edi
push esi
call fcn.0041f3a0
add esp, 8
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
mov ecx, dword [esp + 0x24]
cmp dword [ecx], 0
je 0x45d324
mov edx, 0x1000
or word [ebp + 0xa], dx
mov eax, dword [edi + 4]
mov dword [esp + 0x2c], eax
test al, 3
je 0x45d3be
mov esi, dword [edi + 0x24]
mov eax, ecx
call fcn.00416b50
test byte [esp + 0x2c], 1
mov esi, dword [esp + 0x38]
je 0x45d391
or dword [esp + 0x3c], edx
or esi, eax
mov ecx, eax
add ecx, 0xffffffff
mov dword [esp + 0x48], ecx
mov ecx, edx
adc ecx, 0xffffffff
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x38], esi
shrd esi, ecx, 1
shr ecx, 1
cmp ecx, edx
jb 0x45d3be
ja 0x45d378
cmp esi, eax
jb 0x45d3be
mov edi, dword [esp + 0x10]
push str.ON_clause_references_tables_to_its_right
call fcn.0042b190
add esp, 4
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x48
ret
mov ecx, dword [esp + 0x3c]
shrd esi, ecx, 1
shr ecx, 1
cmp ecx, edx
jb 0x45d3be
ja 0x45d3a5
cmp esi, eax
jb 0x45d3be
mov eax, dword [esp + 0x5c]
cmp dword [eax], 0
jle 0x45d3b4
test byte [eax + 0x2c], 0x40
jne 0x45d378
mov eax, dword [esp + 0x2c]
and eax, 0xfffffffd
mov dword [edi + 4], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [ebp + 0x28], eax
or eax, 0xffffffff
mov dword [ebp + 0x14], eax
mov dword [ebp + 0x10], eax
mov eax, dword [esp + 0x20]
xor edx, edx
mov dword [ebp + 0x2c], ecx
mov word [ebp + 0xc], dx
call fcn.004166a0
test eax, eax
je 0x45d61c
mov eax, dword [edi + 0xc]
call fcn.00412fb0
mov edx, eax
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x10]
call fcn.00412fb0
mov ecx, dword [ebp + 0x24]
and ecx, dword [esp + 0x44]
mov esi, eax
mov eax, dword [ebp + 0x20]
and eax, dword [esp + 0x40]
mov dword [esp + 0x30], 0x3fff
or eax, ecx
je 0x45d426
mov dword [esp + 0x30], 0x800
mov eax, dword [ebp + 0x1c]
test eax, eax
jle 0x45d43b
mov ecx, dword [edx + 0x14]
lea eax, [eax + eax*4]
mov edx, dword [ecx + eax*4 - 0xc]
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x5c]
lea eax, [esp + 0x50]
push eax
mov eax, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x30]
call fcn.00440150
add esp, 8
test eax, eax
je 0x45d479
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov dword [ebp + 0x18], eax
mov eax, dword [esp + 0x20]
mov dword [ebp + 0x14], edx
call fcn.004166d0
and ax, word [esp + 0x30]
mov word [ebp + 0xc], ax
cmp dword [esp + 0x20], 0x2d
jne 0x45d489
mov ecx, 0x800
or word [ebp + 0xa], cx
test esi, esi
je 0x45d5c6
mov eax, dword [esp + 0x5c]
lea edx, [esp + 0x50]
push edx
push eax
mov eax, dword [esp + 0x28]
mov ecx, esi
call fcn.00440150
add esp, 8
test eax, eax
je 0x45d5c6
test byte [esi + 4], 0x20
jne 0x45d5c6
cmp dword [ebp + 0x14], 0
mov dword [esp + 0x2c], 0
jl 0x45d55e
push 0
push edi
mov edi, dword [esp + 0x1c]
push edi
call fcn.0044ba90
add esp, 0xc
cmp byte [edi + 0x57], 0
mov esi, eax
je 0x45d4f7
push esi
push edi
call fcn.00423720
add esp, 8
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x48
ret
push 3
push esi
mov edi, ebx
call fcn.00424f00
add esp, 8
test eax, eax
je 0x45dc57
mov ecx, dword [esp + 0x64]
lea edi, [eax + eax*2]
shl edi, 4
add edi, dword [ebx + 0x18]
push ebx
mov dword [esp + 0x38], edi
call fcn.00416890
add esp, 4
cmp dword [esp + 0x20], 0x2d
jne 0x45d536
mov ecx, 0x800
or word [edi + 0xa], cx
mov ebp, dword [ebx + 0x18]
add ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
or word [ebp + 0xa], 8
call fcn.00450be0
test eax, eax
je 0x45d564
mov edx, 0x800
or word [ebp + 0xc], dx
mov dword [esp + 0x2c], edx
jmp 0x45d564
mov esi, edi
mov dword [esp + 0x34], ebp
mov eax, dword [esp + 0x10]
push esi
call fcn.004505a0
mov edx, dword [esp + 0x38]
or word [edx + 0xa], ax
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0x44]
or eax, dword [esp + 0x4c]
mov dword [edx + 0x18], ecx
mov ecx, dword [esp + 0x48]
or ecx, dword [esp + 0x50]
mov dword [edx + 0x20], eax
mov eax, dword [esp + 0x3c]
mov dword [edx + 0x24], ecx
mov ecx, dword [esp + 0x40]
mov dword [edx + 0x28], eax
mov dword [edx + 0x2c], ecx
movzx eax, byte [esi]
add esp, 4
call fcn.004166d0
add ax, word [esp + 0x2c]
and ax, word [esp + 0x30]
mov word [edx + 0xc], ax
jmp 0x45d990
cmp dword [esp + 0x20], 0x32
jne 0x45d990
mov edx, edi
mov eax, dword [edx + 4]
mov dword [esp + 0x2c], eax
test al, 1
jne 0x45d990
mov eax, dword [esp + 0x28]
call fcn.00413560
test eax, eax
jne 0x45d990
mov eax, dword [esp + 0x2c]
mov ecx, edi
or eax, 0x20000000
mov dword [ecx + 4], eax
xor eax, eax
mov byte [ecx], 0xaa
mov dword [ecx + 8], str.false
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], eax
mov word [ebp + 0xc], ax
jmp 0x45d990
mov al, byte [edi]
cmp al, 0x30
jne 0x45d6ce
cmp byte [ebx + 8], 0x2c
jne 0x45d6ce
mov edi, dword [edi + 0x14]
xor esi, esi
add edi, 8
mov dword [esp + 0x30], edi
lea esp, [esp]
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx]
mov ebp, dword [esp + 0x14]
push 0
push edx
push ebp
call fcn.0044ba90
mov edi, dword [esp + 0x24]
mov ecx, dword [edi + 0xc]
push 0
push ecx
push ebp
mov dword [esp + 0x4c], eax
call fcn.0044ba90
movzx edx, byte [esi + 0x4c998c]
mov ecx, eax
mov eax, dword [esp + 0x28]
push edx
push eax
mov eax, dword [esp + 0x54]
call fcn.0042d0f0
mov edx, edi
call fcn.00416870
push 3
push eax
mov edi, ebx
call fcn.00424f00
mov ecx, dword [esp + 0x84]
mov edi, eax
push edi
push ebx
push ecx
call fcn.0045d1e0
mov ebp, dword [ebx + 0x18]
mov ecx, dword [esp + 0x98]
add ebp, dword [esp + 0x50]
push ebx
mov eax, edi
call fcn.00416890
add dword [esp + 0x68], 0x14
inc esi
add esp, 0x38
cmp esi, 2
jl 0x45d640
jmp 0x45d990
cmp al, 0x2b
jne 0x45d6f1
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x5c]
push edx
push ebx
push eax
call fcn.00450700
mov ebp, dword [ebx + 0x18]
add esp, 0xc
add ebp, dword [esp + 0x1c]
jmp 0x45d990
cmp al, 0x33
jne 0x45d7b4
mov esi, dword [edi + 0xc]
cmp byte [esi], 0xa7
jne 0x45d990
cmp word [esi + 0x20], 0
jl 0x45d990
mov ecx, edi
test byte [ecx + 4], 1
jne 0x45d990
mov edx, dword [esp + 0x14]
push 0
push 0x79
push edx
xor edi, edi
call fcn.0041e1c0
push 0
mov edi, eax
mov eax, dword [esp + 0x24]
push esi
push eax
call fcn.0044ba90
mov edx, dword [esp + 0x28]
mov ecx, eax
push 0x36
push edx
mov eax, edi
call fcn.0042d0f0
push 0x83
push eax
mov edi, ebx
call fcn.00424f00
add esp, 0x28
test eax, eax
je 0x45d990
lea edi, [eax + eax*2]
xor ecx, ecx
shl edi, 4
add edi, dword [ebx + 0x18]
push ebx
mov dword [edi + 0x20], ecx
mov dword [edi + 0x24], ecx
mov ecx, dword [esi + 0x1c]
mov dword [edi + 0x14], ecx
movsx edx, word [esi + 0x20]
mov ecx, 4
mov word [edi + 0xc], cx
mov ecx, dword [esp + 0x68]
mov dword [edi + 0x18], edx
call fcn.00416890
mov ebp, dword [ebx + 0x18]
add ebp, dword [esp + 0x20]
add esp, 4
mov edx, dword [ebp + 0x28]
or word [ebp + 0xa], 8
mov dword [edi + 0x28], edx
mov eax, dword [ebp + 0x2c]
mov dword [edi + 0x2c], eax
jmp 0x45d990
cmp al, 0xac
jne 0x45d990
cmp byte [ebx + 8], 0x2c
jne 0x45d990
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x2c]
push edx
push eax
lea ecx, [esp + 0x3c]
mov eax, edi
call fcn.0043fde0
add esp, 0xc
test eax, eax
je 0x45d990
mov ecx, edi
mov edx, dword [ecx + 0x14]
mov eax, dword [edx + 0x1c]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
push 0
push ecx
push edx
mov dword [esp + 0x2c], eax
call fcn.0044ba90
add esp, 0xc
cmp dword [esp + 0x30], 0
mov dword [esp + 0x2c], eax
je 0x45d872
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
cmp byte [ecx + 0x57], 0
jne 0x45d872
mov eax, dword [esp + 0x28]
mov edx, 0x400
or word [ebp + 0xa], dx
mov ebp, dword [eax + 8]
mov al, byte [ebp]
xor edi, edi
test al, al
je 0x45d872
mov ecx, dword [esp + 0x28]
nop
movzx esi, al
mov dl, byte [esi + 0x4c81e0]
and dl, 0x20
not dl
and dl, al
mov eax, dword [esp + 0x2c]
mov byte [ebp], dl
mov edx, dword [eax + 8]
movzx eax, byte [esi + 0x4c80c8]
mov byte [edi + edx], al
mov edx, dword [ecx + 8]
inc edi
mov al, byte [edx + edi]
lea ebp, [edx + edi]
test al, al
jne 0x45d840
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x57], 0
jne 0x45d8b0
mov ecx, dword [esp + 0x2c]
mov esi, dword [ecx + 8]
mov eax, esi
call fcn.0040a750
cmp dword [esp + 0x30], 0
lea ecx, [eax + esi - 1]
mov al, byte [ecx]
je 0x45d8ac
cmp al, 0x40
jne 0x45d8a3
mov dword [esp + 0x34], 0
movzx edx, al
mov al, byte [edx + 0x4c80c8]
inc al
mov byte [ecx], al
cmp dword [esp + 0x30], 0
mov dword [esp + 0x30], str.NOCASE
jne 0x45d8c7
mov dword [esp + 0x30], 0x4c839c
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
push 0
push eax
push ecx
call fcn.0044ba90
mov ebp, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x40]
push ebp
call fcn.00423580
mov ecx, eax
mov eax, dword [esp + 0x3c]
push 0x39
push ebp
call fcn.0042d0f0
mov edx, dword [esp + 0x34]
call fcn.00416870
push 0x103
push eax
mov edi, ebx
call fcn.00424f00
mov edx, dword [esp + 0x44]
push 0
mov esi, eax
mov eax, dword [esp + 0x3c]
push edx
push eax
call fcn.0044ba90
push eax
mov eax, dword [esp + 0x64]
push ebp
call fcn.00423580
mov ecx, eax
mov eax, dword [esp + 0x64]
push 0x38
push ebp
call fcn.0042d0f0
mov edx, dword [esp + 0x58]
add esp, 0x40
call fcn.00416870
push 0x103
push eax
call fcn.00424f00
mov ebp, dword [esp + 0x64]
push esi
push ebx
push ebp
mov edi, eax
call fcn.0045d1e0
push edi
push ebx
push ebp
call fcn.0045d1e0
mov ebp, dword [ebx + 0x18]
add ebp, dword [esp + 0x3c]
add esp, 0x20
cmp dword [esp + 0x34], 0
je 0x45d990
mov ecx, dword [esp + 0x64]
push ebx
mov eax, esi
call fcn.00416890
mov ecx, dword [esp + 0x68]
push ebx
mov eax, edi
call fcn.00416890
add esp, 8
mov esi, dword [esp + 0x18]
mov al, byte [esi]
cmp al, 0x35
je 0x45d9a2
cmp al, 0x2d
jne 0x45da70
mov ecx, dword [esi + 0xc]
call fcn.00413000
mov edi, eax
cmp edi, 1
mov dword [esp + 0x34], edi
jle 0x45da70
mov ecx, dword [esi + 0x10]
call fcn.00413000
cmp eax, edi
jne 0x45da70
mov eax, dword [esi + 0xc]
mov ecx, 0x1000
test dword [eax + 4], ecx
je 0x45d9e2
mov eax, dword [esi + 0x10]
test dword [eax + 4], ecx
jne 0x45da70
cmp byte [ebx + 8], 0x2c
jne 0x45da70
xor ebp, ebp
test edi, edi
jle 0x45da56
mov ecx, dword [esp + 0x34]
mov eax, dword [esi + 0xc]
push ecx
mov ecx, dword [esp + 0x14]
mov edi, ebp
call fcn.004572a0
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x64], eax
mov eax, dword [esi + 0x10]
push edx
call fcn.004572a0
movzx ecx, byte [esi]
mov edx, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x6c]
push edx
call fcn.0042d0f0
mov edx, esi
call fcn.00416870
push 0x8001
push eax
mov edi, ebx
call fcn.00424f00
push eax
mov eax, dword [esp + 0x78]
push ebx
push eax
call fcn.0045d1e0
inc ebp
add esp, 0x24
cmp ebp, dword [esp + 0x34]
jl 0x45d9f2
mov eax, dword [ebx + 0x18]
add eax, dword [esp + 0x1c]
mov ecx, 0x2000
or word [eax + 0xa], 6
mov word [eax + 0xc], cx
jmp 0x45dc42
cmp byte [esi], 0x31
jne 0x45db19
cmp dword [ebp + 0x1c], 0
jne 0x45db19
mov ecx, dword [esi + 0xc]
cmp byte [ecx], 0xb1
jne 0x45db19
test dword [esi + 4], 0x1000
je 0x45db19
mov eax, dword [esi + 0x14]
cmp dword [eax + 0x34], 0
je 0x45daae
test dword [eax + 4], 0x200
je 0x45db19
cmp dword [eax + 0x44], 0
jne 0x45db19
cmp byte [ebx + 8], 0x2c
jne 0x45dc42
xor ebp, ebp
call fcn.00413000
test eax, eax
jle 0x45dc42
lea ecx, [ecx]
push 0x8002
push esi
mov edi, ebx
call fcn.00424f00
mov ecx, dword [esp + 0x64]
mov edi, eax
mov eax, dword [ebx + 0x18]
push edi
lea edx, [edi + edi*2]
shl edx, 4
push ebx
inc ebp
push ecx
mov dword [edx + eax + 0x1c], ebp
call fcn.0045d1e0
mov ecx, dword [esp + 0x78]
push ebx
mov eax, edi
call fcn.00416890
mov ecx, dword [esi + 0xc]
add esp, 0x18
call fcn.00413000
cmp ebp, eax
jl 0x45dad0
jmp 0x45dc42
cmp byte [ebx + 8], 0x2c
jne 0x45dc42
lea edx, [esp + 0x30]
push edx
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x68]
push ecx
xor ebp, ebp
push edx
mov edi, esi
mov dword [esp + 0x40], ebp
mov dword [esp + 0x3c], ebp
call fcn.00416700
add esp, 0x10
cmp eax, ebp
mov dword [esp + 0x34], eax
jle 0x45dc42
mov edi, dword [esp + 0x30]
mov ebp, dword [esp + 0x2c]
nop
mov eax, dword [esp + 0x24]
dec dword [esp + 0x34]
push edi
push eax
call fcn.0041f3e0
mov ecx, dword [esp + 0x2c]
push ebp
push ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
call fcn.0041f3e0
and eax, dword [esp + 0x60]
and edx, dword [esp + 0x64]
add esp, 0x10
or eax, edx
jne 0x45dc2d
mov edx, dword [esp + 0x14]
push eax
push edi
push edx
call fcn.0044ba90
mov ecx, dword [esp + 0x1c]
push 0x2e
push ecx
xor ecx, ecx
call fcn.0042d0f0
add esp, 0x14
test byte [esi + 4], 1
je 0x45dbc6
test eax, eax
je 0x45dbc6
or dword [eax + 4], 1
mov edx, dword [esi + 0x24]
mov dword [eax + 0x24], edx
push 3
push eax
mov edi, ebx
call fcn.00424f00
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
lea edi, [eax + eax*2]
shl edi, 4
add edi, dword [ebx + 0x18]
push ebx
mov dword [edi + 0x20], ecx
mov dword [edi + 0x24], edx
mov ecx, dword [ebp + 0x1c]
mov dword [edi + 0x14], ecx
movsx edx, word [ebp + 0x20]
mov ecx, 0x40
mov dword [edi + 0x18], edx
mov dl, byte [esp + 0x6c]
mov word [edi + 0xc], cx
mov ecx, dword [esp + 0x70]
mov byte [edi + 0xf], dl
call fcn.00416890
mov eax, dword [ebx + 0x18]
add eax, dword [esp + 0x28]
add esp, 0xc
mov ecx, dword [eax + 0x28]
or word [eax + 0xa], 8
mov dword [edi + 0x28], ecx
mov edx, dword [eax + 0x2c]
mov dword [edi + 0x2c], edx
mov edi, dword [esp + 0x30]
cmp dword [esp + 0x34], 0
mov eax, ebp
mov ebp, edi
mov edi, eax
mov dword [esp + 0x30], edi
jg 0x45db60
mov ebx, dword [ebx + 0x18]
add ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
or dword [ebx + 0x20], eax
or dword [ebx + 0x24], ecx
pop edi
pop ebp
pop esi
pop ebx
add esp, 0x48
ret