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

Disassembly:
sub esp, 0xb0
mov eax, dword [esp + 0xb4]
mov edx, dword [esp + 0xb8]
push ebx
push ebp
mov ebx, dword [eax]
mov eax, dword [eax + 0xb8]
mov dword [esp + 0x48], eax
push esi
mov ecx, dword [ebx + 0x104]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x54], ecx
mov ecx, dword [edx + 0xb8]
mov esi, dword [eax]
mov dword [esp + 0x38], ecx
mov ecx, dword [ecx + 0x2c]
push edi
xor eax, eax
lea edi, [esp + 0xa8]
mov ebp, dword [ecx]
mov ecx, 6
mov dword [esp + 0x30], ebp
mov dword [esp + 0x2c], ebx
rep stosd dword es:[edi], eax
mov ax, word [esi + 0x14]
mov cx, word [ebp + 0x14]
mov word [esp + 0x54], ax
mov eax, dword [esp + 0xd0]
xor edi, edi
mov dword [esp + 0x48], esi
mov eax, dword [eax + 0x20]
mov dword [esp + 0x4c], edi
cmp eax, edi
mov word [esp + 0x18], cx
je 0x469a25
cmp dword [ebp + 8], eax
jbe 0x469a25
lea ecx, [esp + 0x30]
push 1
push ecx
push edx
call fcn.0046b450
add esp, 0xc
cmp eax, edi
jne 0x46a3eb
mov ebp, dword [esp + 0x30]
mov ebx, dword [ebx + 0x250]
mov eax, ebx
mov dword [esp + 0x24], ebx
and eax, 0x400
mov dword [esp + 0x20], eax
je 0x469a43
mov ecx, 0x26
jmp 0x469a51
mov edx, ebx
and dl, 1
neg dl
sbb edx, edx
and edx, 6
mov ecx, edx
lea ecx, [ecx + ebp + 0x1a]
cmp eax, edi
mov dword [esp + 0x34], ecx
je 0x469a64
mov eax, 0x26
jmp 0x469a70
and bl, 1
neg bl
sbb ebx, ebx
and ebx, 6
mov eax, ebx
xor edx, edx
add eax, 0x1a
mov dx, word [esi + 0x14]
mov bl, byte [ebp + 0x19]
neg edx
and eax, 0xffff
xor ecx, ecx
shl edx, 1
sub edx, eax
xor eax, eax
mov ax, word [esi + 0x16]
mov dword [esp + 0x14], edi
add edx, eax
cmp bl, 5
sete cl
inc ecx
cmp word [esp + 0x18], di
mov dword [esp + 0x10], edx
mov dword [esp + 0x28], ecx
jbe 0x46a3d9
mov eax, ecx
and eax, 0xffff
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x48]
mov cl, byte [eax + 0x19]
mov byte [esp + 0x1f], cl
mov eax, dword [esp + 0x20]
test eax, eax
je 0x469ad8
mov edi, dword [esp + 0x24]
mov eax, 0x26
jmp 0x469ae7
mov edi, dword [esp + 0x24]
mov eax, edi
and al, 1
neg al
sbb eax, eax
and eax, 6
mov ecx, dword [esp + 0x14]
xor esi, esi
and ecx, 0xffff
lea eax, [eax + ecx*2 + 0x1a]
mov si, word [eax + ebp]
mov eax, esi
add eax, ebp
mov bl, byte [eax + 2]
and bl, 0x7f
cmp bl, 1
je 0x469b11
mov esi, 0xe
jmp 0x469b21
mov si, word [eax]
add si, 6
and esi, 0xfffc
add esi, 2
cmp byte [esp + 0x1f], 5
jne 0x469b93
mov eax, dword [esp + 0x20]
test eax, eax
je 0x469b37
mov eax, 0x26
jmp 0x469b42
mov eax, edi
and al, 1
neg al
sbb eax, eax
and eax, 6
lea eax, [eax + ecx*2 + 0x1c]
xor ebx, ebx
mov bx, word [eax + ebp]
mov al, byte [ebx + ebp + 2]
and al, 0x7f
cmp al, 1
je 0x469b5d
mov eax, 0xe
jmp 0x469b91
mov eax, dword [esp + 0x20]
test eax, eax
je 0x469b6c
mov eax, 0x26
jmp 0x469b77
mov eax, edi
and al, 1
neg al
sbb eax, eax
and eax, 6
lea eax, [eax + ecx*2 + 0x1c]
xor edi, edi
mov di, word [eax + ebp]
mov ax, word [edi + ebp]
add ax, 6
and eax, 0xfffc
add eax, 2
add esi, eax
mov al, byte [esp + 0x1f]
mov edi, dword [esp + 0x38]
cmp al, 5
mov ebx, edi
jne 0x469c81
mov eax, dword [esp + 0x18]
and eax, 0xffff
mov dword [esp + 0x40], eax
sub eax, edi
cmp ecx, eax
jge 0x469c81
mov eax, dword [esp + 0x34]
lea edx, [edi + ecx]
mov edi, dword [esp + 0x34]
lea eax, [eax + edx*2]
mov cx, word [edi + ecx*2]
cmp cx, word [eax]
mov dword [esp + 0x44], ecx
jne 0x469c7d
lea ecx, [edx + edx + 0x1a]
mov edi, eax
mov eax, dword [esp + 0x20]
add esi, 2
inc ebx
add edi, 2
add ecx, 2
inc edx
test eax, eax
mov dword [esp + 0x5c], ebx
je 0x469bff
mov eax, 0x26
jmp 0x469c0c
mov eax, dword [esp + 0x24]
and al, 1
neg al
sbb eax, eax
and eax, 6
add eax, ecx
xor ebx, ebx
mov bx, word [eax + ebp]
mov al, byte [ebx + ebp + 2]
and al, 0x7f
cmp al, 1
je 0x469c25
mov eax, 0xe
jmp 0x469c59
mov eax, dword [esp + 0x20]
test eax, eax
je 0x469c34
mov eax, 0x26
jmp 0x469c41
mov eax, dword [esp + 0x24]
and al, 1
neg al
sbb eax, eax
and eax, 6
add eax, ecx
xor ebx, ebx
mov bx, word [eax + ebp]
mov ax, word [ebx + ebp]
add ax, 6
and eax, 0xfffc
add eax, 2
mov ebx, dword [esp + 0x5c]
add esi, eax
mov eax, dword [esp + 0x40]
inc ebx
add edi, 2
add ecx, 2
inc edx
cmp edx, eax
jge 0x469c7d
mov ax, word [esp + 0x44]
cmp ax, word [edi]
je 0x469be1
mov edx, dword [esp + 0x10]
cmp edx, esi
jb 0x469cbf
mov ecx, dword [esp + 0xcc]
mov eax, edx
sub eax, esi
cmp eax, ecx
jb 0x469cb1
mov edx, eax
mov eax, dword [esp + 0x14]
add eax, ebx
mov dword [esp + 0x10], edx
cmp ax, word [esp + 0x18]
mov dword [esp + 0x14], eax
jb 0x469ac5
jmp 0x469cbf
sub esi, edx
sub edx, ecx
add esi, ecx
cmp edx, esi
jbe 0x469cbf
add dword [esp + 0x14], ebx
mov ecx, dword [esp + 0x14]
xor eax, eax
cmp cx, ax
je 0x46a3d9
cmp byte [esp + 0x1f], 5
je 0x469d0b
cmp cx, word [esp + 0x18]
jne 0x46a0b0
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0xc8]
mov eax, dword [esp + 0xc4]
push ecx
push edx
push eax
call fcn.0046a400
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb0
ret
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x3c]
mov edx, dword [ecx]
mov ecx, dword [eax + 0x2c]
mov edi, dword [eax + 0x28]
mov dword [esp + 0x10], edx
lea esi, [ecx - 0x1c]
mov dword [esp + 0x44], ecx
cmp esi, edi
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], edi
jb 0x469de1
mov eax, dword [esp + 0x20]
test eax, eax
je 0x469d45
mov edx, 0x26
jmp 0x469d53
mov edx, dword [esp + 0x24]
and dl, 1
neg dl
sbb edx, edx
and edx, 6
mov ecx, dword [esi]
xor eax, eax
add edx, 0x1a
mov ax, word [ecx + 0x14]
and edx, 0xffff
neg eax
shl eax, 1
sub eax, edx
xor edx, edx
mov dx, word [ecx + 0x16]
add eax, edx
mov edx, dword [esp + 0x10]
cmp eax, edx
jae 0x469dd6
mov edx, dword [esp + 0x20]
test edx, edx
je 0x469d89
mov edi, 0x26
jmp 0x469d99
mov edx, dword [esp + 0x24]
and dl, 1
neg dl
sbb edx, edx
and edx, 6
mov edi, edx
mov dx, word [esi + 4]
mov ebx, edx
and ebx, 0xffff
lea edi, [edi + ebx*2 + 0x1a]
xor ebx, ebx
mov bx, word [edi + ecx]
mov cx, word [ebx + ecx]
add cx, 0xf
and ecx, 0xfffc
lea eax, [eax + ecx + 2]
mov ecx, dword [esp + 0x10]
cmp eax, ecx
jae 0x469dcd
mov dword [esp + 0x10], eax
test dx, dx
jne 0x469de1
mov edi, dword [esp + 0x3c]
sub esi, 0x1c
cmp esi, edi
jae 0x469d36
mov edx, dword [esp + 0x14]
cmp dx, word [esp + 0x18]
jne 0x469e42
mov eax, dword [esp + 0x44]
cmp word [eax - 0x18], 0
jne 0x469e51
mov eax, dword [esp + 0x20]
test eax, eax
je 0x469e06
mov ecx, 0x26
jmp 0x469e14
mov ecx, dword [esp + 0x24]
and cl, 1
neg cl
sbb ecx, ecx
and ecx, 6
mov eax, dword [esp + 0x40]
xor esi, esi
mov eax, dword [eax]
mov si, word [ecx + eax + 0x1c]
mov cx, word [esi + eax]
mov eax, dword [esp + 0x10]
add cx, 0xf
and ecx, 0xfffc
add ecx, 2
cmp ecx, eax
jbe 0x469e51
sub edx, dword [esp + 0x28]
mov dword [esp + 0x14], edx
mov eax, dword [esp + 0x20]
test eax, eax
je 0x469e7c
mov eax, 0x26
jmp 0x469e89
mov edx, dword [esp + 0xd0]
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc4]
push edx
push eax
push ecx
call fcn.0046a400
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb0
ret
mov eax, dword [esp + 0x24]
and al, 1
neg al
sbb eax, eax
and eax, 6
mov ecx, edx
xor esi, esi
and ecx, 0xffff
lea eax, [eax + ecx*2 + 0x1a]
mov si, word [eax + ebp]
add esi, ebp
test dx, dx
je 0x469ef1
mov cx, word [esi]
mov eax, dword [esp + 0x10]
add cx, 0xf
and ecx, 0xfffc
cmp ecx, eax
jb 0x469ef1
mov eax, dword [esp + 0xc4]
test byte [eax + 0xf4], 0x10
je 0x469ee4
mov eax, dword [esp + 0x2c]
xor ecx, ecx
cmp dword [eax + 0xc], 0x457e90
setne cl
dec ecx
and ecx, 0x457ee0
mov dword [esp + 0x18], ecx
jmp 0x469ef9
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x18], eax
jmp 0x469ef9
mov dword [esp + 0x18], 0
test dx, dx
je 0x46a3d9
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x38]
mov eax, ecx
and eax, 0xffff
mov ebx, eax
mov ax, word [edx + eax*2]
sub ebx, edi
cmp ax, word [edx + ebx*2]
jne 0x469f35
sub ecx, dword [esp + 0x28]
test cx, cx
jne 0x469f0e
mov dword [esp + 0x14], ecx
jmp 0x46a3d9
test cx, cx
mov dword [esp + 0x14], ecx
je 0x46a3d9
mov edi, dword [esp + 0x20]
mov ebx, ecx
mov ecx, dword [esp + 0x24]
mov dx, word [esi]
mov eax, dword [esp + 0x10]
add dx, 0xf
and edx, 0xfffc
cmp edx, eax
jb 0x46a0a5
mov al, byte [esi + 2]
and al, 0x7f
cmp al, 1
jne 0x46a02e
mov eax, dword [esp + 0x18]
test eax, eax
je 0x46a02e
test edi, edi
je 0x469f89
mov eax, 0x26
jmp 0x469f95
and cl, 1
neg cl
sbb ecx, ecx
and ecx, 6
mov eax, ecx
mov edx, dword [esp + 0x38]
mov ecx, ebx
and ecx, 0xffff
sub ecx, edx
lea edx, [eax + ecx*2 + 0x1a]
xor eax, eax
mov ax, word [edx + ebp]
mov edx, eax
add edx, ebp
mov cl, byte [edx + 2]
and cl, 0x7f
cmp cl, 1
jne 0x46a02e
mov ecx, 6
xor eax, eax
lea edi, [esp + 0x78]
add edx, 3
rep stosd dword es:[edi], eax
mov ax, word [edx - 3]
mov ecx, 6
mov dword [esp + 0x7c], eax
xor eax, eax
lea edi, [esp + 0x90]
mov dword [esp + 0x78], edx
rep stosd dword es:[edi], eax
xor ecx, ecx
lea edx, [esp + 0x90]
mov cx, word [esi]
lea eax, [esp + 0x78]
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x2c]
push edx
add esi, 3
push eax
push ecx
mov dword [esp + 0x9c], esi
call dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x3c]
add eax, 0xf
add esp, 0xc
and eax, 0xfffc
add eax, 2
cmp eax, ecx
jb 0x46a0a5
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x34]
sub ebx, esi
test bx, bx
je 0x46a056
mov eax, ebx
and eax, 0xffff
mov edi, eax
mov ax, word [ecx + eax*2]
sub edi, edx
cmp ax, word [ecx + edi*2]
je 0x46a03a
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x14], ebx
mov ecx, dword [ecx + 0x250]
mov edi, ecx
and edi, 0x400
je 0x46a075
mov eax, 0x26
jmp 0x46a083
mov edx, ecx
and dl, 1
neg dl
sbb edx, edx
and edx, 6
mov eax, edx
mov edx, ebx
xor esi, esi
and edx, 0xffff
lea eax, [eax + edx*2 + 0x1a]
mov si, word [eax + ebp]
add esi, ebp
test bx, bx
jne 0x469f4c
jmp 0x46a3d9
test bx, bx
je 0x46a3d9
xor eax, eax
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x54]
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x2c]
mov ecx, 1
mov eax, dword [edx + 0x250]
test ah, 4
je 0x46a0df
mov eax, 0x26
jmp 0x46a0e8
and al, 1
neg al
sbb eax, eax
and eax, 6
xor esi, esi
mov si, word [eax + ebp + 0x1a]
add esi, ebp
mov bp, word [ebp + 0x14]
mov eax, ebp
and eax, 0xffff
and eax, 0x80000001
jns 0x46a108
dec eax
or eax, 0xfffffffe
inc eax
jne 0x46a13f
cmp bp, 2
jbe 0x46a1a0
mov eax, dword [esp + 0x34]
mov dx, word [eax]
cmp dx, word [eax + 4]
jne 0x46a1a0
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x46a133
mov dword [esp + 0x28], ecx
mov dword [esp + 0x10], ecx
jmp 0x46a13b
mov dword [esp + 0x28], 0
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x10]
test eax, eax
je 0x46a1bc
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x46a1bc
mov eax, edi
and eax, 0xffff
mov edx, eax
and edx, 0x80000001
jns 0x46a165
dec edx
or edx, 0xfffffffe
inc edx
jne 0x46a1bc
mov edx, dword [esp + 0xc4]
lea ecx, [eax - 2]
push 1
push ecx
push eax
push ebx
push edx
call fcn.00493e60
add esp, 0x14
test eax, eax
jne 0x46a3eb
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x46a26e
mov dword [esp + 0x10], 0
jmp 0x46a26e
mov edx, dword [esp + 0x18]
xor eax, eax
cmp edx, eax
je 0x46a1b8
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], eax
jmp 0x46a14f
mov dword [esp + 0x10], eax
xor eax, eax
mov al, byte [esi + 2]
and al, 0x7f
cmp eax, ecx
je 0x46a20f
jle 0x46a310
cmp eax, 3
jg 0x46a310
mov edx, dword [esp + 0xc4]
lea eax, [esp + 0x60]
mov ecx, edi
push 0
push eax
and ecx, 0xffff
push 0xc
push ecx
push ebx
push edx
mov dword [esp + 0x7c], 0xc
mov dword [esp + 0x78], esi
call fcn.00495790
add esp, 0x18
test eax, eax
jne 0x46a3eb
jmp 0x46a26e
xor eax, eax
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], 3
mov ax, word [esi]
lea ecx, [esi + 3]
mov dword [esp + 0x64], eax
mov dword [esp + 0x60], ecx
mov cx, word [esi]
lea edx, [esp + 0x60]
add cx, 6
push edx
lea eax, [esp + 0xac]
mov edx, edi
and ecx, 0xfffc
push eax
mov eax, dword [esp + 0xcc]
and edx, 0xffff
push ecx
push edx
push ebx
push eax
call fcn.00495790
add esp, 0x18
test eax, eax
jne 0x46a3eb
mov eax, dword [esp + 0x18]
inc edi
test eax, eax
mov eax, dword [esp + 0x30]
je 0x46a2b1
xor ecx, ecx
mov cx, word [eax + 0x14]
and ecx, 0x80000001
jns 0x46a28e
dec ecx
or ecx, 0xfffffffe
inc ecx
jne 0x46a2b1
mov esi, dword [esp + 0xc8]
push 0
push 1
push 0
push eax
push esi
call fcn.00493e60
add esp, 0x14
test eax, eax
jne 0x46a3eb
jmp 0x46a2ec
mov dl, byte [esi + 2]
and dl, 0x7f
cmp dl, 1
je 0x46a2c3
mov esi, 0xc
jmp 0x46a2d0
mov si, word [esi]
add si, 6
and esi, 0xfffc
push esi
mov esi, dword [esp + 0xcc]
push 0
push eax
push esi
call fcn.004955e0
add esp, 0x10
test eax, eax
jne 0x46a3eb
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x4c]
add eax, 0xffff
inc ebp
test ax, ax
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x14], eax
je 0x46a339
mov ebp, dword [esp + 0x30]
jmp 0x46a0c4
mov ecx, dword [esp + 0x2c]
mov eax, dword [ebx + 8]
push eax
push str.Unknown_record_format__page__lu__indx_0
mov edx, dword [ecx + 0x14]
push edx
call fcn.00415f80
add esp, 0xc
mov eax, 0x16
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb0
ret
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
push 2
push eax
mov ecx, dword [edi + 0x1c]
push ecx
call fcn.00452fb0
add esp, 0xc
test eax, eax
jne 0x46a3eb
test ebp, ebp
je 0x46a3af
mov edx, dword [esp + 0x50]
test byte [edx + 0xcc], 2
jne 0x46a379
mov eax, dword [esp + 0xc4]
test byte [eax + 0xf4], 0x10
je 0x46a3af
cmp byte [ebx + 0x19], 5
jne 0x46a388
mov eax, ebp
cdq
sub eax, edx
sar eax, 1
mov ebp, eax
mov ecx, ebp
neg ecx
push ecx
push esi
call fcn.004951b0
add esp, 8
test eax, eax
jne 0x46a3eb
mov edx, dword [esp + 0xc4]
push ebp
push edx
call fcn.004951b0
add esp, 8
test eax, eax
jne 0x46a3eb
cmp dword [esi + 0xb4], 1
jne 0x46a3c6
push ebx
push esi
call fcn.004949c0
add esp, 8
test eax, eax
jne 0x46a3eb
mov eax, dword [edi + 0x1c]
push 2
push ebx
push eax
call fcn.00452fb0
add esp, 0xc
test eax, eax
jne 0x46a3eb
mov ecx, dword [esp + 0xc8]
push 1
push ecx
call fcn.00493a60
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb0
ret