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

Disassembly:
sub esp, 0xac
mov eax, dword [0x4cb598]
xor eax, esp
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xb4]
push ebx
mov dword [esp + 4], eax
movzx eax, word [eax]
push ebp
push esi
movzx edx, ax
push edi
push edx
mov dword [esp + 0x6c], ecx
call fcn.004363e0
xor ecx, ecx
mov ebx, eax
mov dword [esp + 0x18], ecx
mov edx, dword [ebx + 0x38]
mov eax, dword [ebx + 0x30]
mov dword [esp + 0x74], edx
mov edx, dword [0x4ae4e4]
mov dword [esp + 0x8c], edx
mov edx, dword [0x4ae4e8]
mov dword [esp + 0x90], edx
mov edx, dword [0x4ae4ec]
mov dword [esp + 0x1c], eax
mov al, 0xc3
mov dword [esp + 0x94], edx
mov edx, dword [0x4ae4f0]
mov byte [esp + 0xb9], al
mov byte [esp + 0x8a], al
xor eax, eax
mov dword [esp + 0x9c], 0x7a9354d9
mov word [esp + 0xa0], 0x468
mov word [esp + 0xa2], 0x444a
mov byte [esp + 0xa4], 0x81
mov byte [esp + 0xa5], 0xce
mov byte [esp + 0xa6], 0xb
mov byte [esp + 0xa7], 0xf6
mov byte [esp + 0xa8], 0x17
mov byte [esp + 0xa9], 0xd8
mov byte [esp + 0xaa], 0x90
mov byte [esp + 0xab], 0xdf
mov dword [esp + 0xac], 0x8c8ce578
mov word [esp + 0xb0], 0x8a3d
mov word [esp + 0xb2], 0x4f1c
mov byte [esp + 0xb4], 0x99
mov byte [esp + 0xb5], 0x35
mov byte [esp + 0xb6], 0x89
mov byte [esp + 0xb7], 0x61
mov byte [esp + 0xb8], 0x85
mov byte [esp + 0xba], 0x2d
mov byte [esp + 0xbb], 0xd3
mov dword [esp + 0x98], edx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x4c], ecx
cmp dword [ebx + 0x48], ecx
mov dword [esp + 0x44], ecx
sete al
mov dword [esp + 0x40], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x60], ecx
mov edi, 0x5a88641b
mov word [esp + 0x80], 0xbbb9
mov word [esp + 0x82], 0x4aa6
mov byte [esp + 0x84], 0x80
mov byte [esp + 0x85], 0xf7
mov byte [esp + 0x86], 0x49
mov byte [esp + 0x87], 0x8a
mov byte [esp + 0x88], 0xe4
mov byte [esp + 0x89], 7
mov byte [esp + 0x8b], 0x1f
mov dword [esp + 0x50], ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x2c], eax
mov dword [0x4e2250], ecx
push ecx
mov ecx, dword [esp + 0x18]
push ecx
call fcn.00432e40
add esp, 0xc
call fcn.00442690
mov esi, dword [ebx + 0x1c]
mov dword [esp + 0x6c], eax
mov al, byte [esi + 9]
cmp al, 0x10
jne 0x4356cc
mov eax, dword [esi + 0x40]
cmp eax, 6
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], eax
je 0x435833
cmp eax, 1
jne 0x4356a3
mov edx, dword [esi + 0x38]
sub dword [esp + 0x18], edx
mov dword [esp + 0x30], eax
jmp 0x435833
test eax, eax
jne 0x435833
mov eax, dword [esp + 0x18]
mov ecx, dword [esi]
push eax
call fcn.00434810
add esp, 4
test eax, eax
je 0x435833
mov eax, SysReAllocStringLen
jmp 0x435ef2
cmp al, 2
jne 0x435833
mov eax, dword [ebx + 0x50]
cmp eax, 5
mov dword [esp + 0x58], eax
je 0x435833
cmp eax, 3
je 0x435833
mov edx, dword [esp + 0x7c]
push 1
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x88]
push 0
sub esp, 0x10
mov eax, esp
mov dword [eax], edi
mov dword [eax + 4], edx
mov edx, dword [esp + 0xa0]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
lea eax, [esp + 0x70]
push eax
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0x40]
push ecx
lea edx, [esp + 0x48]
push edx
push eax
call fcn.0043f610
add esp, 0x2c
test eax, eax
jne 0x435833
mov ecx, dword [esp + 0x14]
push ecx
call fcn.00476994
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x435759
mov eax, reloc.OLEAUT32.dll_VariantCopy
jmp 0x435ef2
mov ecx, dword [esp + 0x7c]
push 1
lea edx, [esp + 0x18]
push edx
mov edx, dword [esp + 0x88]
push ebp
sub esp, 0x10
mov eax, esp
mov dword [eax], edi
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0xa0]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
lea edx, [esp + 0x70]
push edx
mov edx, dword [esp + 0x30]
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x48]
push ecx
push edx
call fcn.0043f610
add esp, 0x2c
test eax, eax
jne 0x43581e
mov eax, dword [esp + 0x14]
push eax
mov eax, ebp
call fcn.004349b0
add esp, 4
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x43581e
mov ecx, dword [esp + 0x24]
push ecx
push ebx
call fcn.0044a9b0
mov edx, dword [esp + 0x28]
push edx
push eax
call fcn.0044aa20
add esp, 0x10
test eax, eax
jne 0x4357e1
mov dword [esp + 0x1c], 0xd002
jmp 0x43581e
mov ecx, dword [eax + 0x1c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x7c]
push eax
push ebp
sub esp, 0x10
mov eax, esp
mov dword [eax], edi
mov dword [eax + 4], edx
mov edx, dword [esp + 0x98]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x9c]
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x6c]
push eax
push ecx
call fcn.0043f120
add esp, 0x20
mov dword [esp + 0x1c], eax
push ebp
call fcn.00478435
mov eax, dword [esp + 0x20]
add esp, 4
test eax, eax
jne 0x435ef2
cmp byte [esp + 0xc8], 0
jne 0x435857
cmp dword [esi + 0x48], 0
je 0x435857
push esi
call fcn.00438d90
mov ecx, dword [esi]
mov edi, dword [ecx + 0x20]
add esp, 4
mov dword [esp + 0x18], edi
jmp 0x43585b
mov edi, dword [esp + 0x18]
push edi
call fcn.00476994
add esp, 4
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x43588f
push eax
push str.Insufficient_Memory_avilable_for_ROM_allocation
push 0xa000
push eax
push str.FWLIB
call fcn.0043a1a0
add esp, 0x14
mov eax, 0xa000
jmp 0x435ef2
cmp word [ebx + 0x40], 0
push edi
je 0x43589e
push 0xff
jmp 0x4358a0
push 0
push eax
call fcn.004762a0
add esp, 0xc
cmp dword [esp + 0x28], 0
je 0x435924
mov ecx, dword [0x4c9890]
lea edx, [esp + 0x20]
push edx
mov edx, dword [0x4c9894]
lea eax, [esp + 0x28]
push eax
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [0x4c9898]
mov dword [eax + 4], edx
mov edx, dword [0x4c989c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x28]
push eax
call fcn.00433d80
add esp, 0x1c
test eax, eax
jne 0x435924
mov ecx, dword [0x4c9890]
mov edx, dword [0x4c9894]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [0x4c9898]
mov dword [eax + 4], edx
mov edx, dword [0x4c989c]
mov dword [eax + 8], ecx
push ebx
mov dword [eax + 0xc], edx
call fcn.004334e0
add esp, 0x14
mov ebp, dword [0x4ae504]
mov ecx, dword [0x4ae50c]
mov edi, dword [0x4ae508]
mov edx, dword [0x4ae510]
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x28]
push eax
sub esp, 0x10
mov eax, esp
mov dword [eax], ebp
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x28]
push ecx
mov dword [esp + 0xa0], edx
mov dword [eax + 0xc], edx
call fcn.00433d80
add esp, 0x1c
test eax, eax
jne 0x4359ac
cmp dword [esp + 0x28], eax
mov edx, dword [0x4e2148]
mov dword [esp + 0x40], edx
je 0x4359ac
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
sub esp, 0x10
mov eax, esp
mov dword [eax], ebp
mov dword [eax + 4], edi
mov dword [eax + 8], ecx
push ebx
mov dword [eax + 0xc], edx
call fcn.004334e0
add esp, 0x14
mov edx, dword [esp + 0x88]
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x94]
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [esp + 0xa8]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0xac]
mov dword [eax + 8], edx
mov edx, dword [esp + 0x28]
push edx
mov dword [eax + 0xc], ecx
call fcn.00433d80
mov ebp, eax
add esp, 0x1c
test ebp, ebp
jne 0x4359fd
mov dword [esp + 0x4c], 1
cmp dword [ebx + 0x44], 0
jne 0x435a0b
mov dword [esp + 0x4c], 1
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x435a34
test ebp, ebp
je 0x435a1d
mov dword [esp + 0x3c], ecx
jmp 0x435a34
mov eax, dword [0x4e2148]
mov dword [esp + 0x3c], eax
jmp 0x435a34
mov ecx, dword [esp + 0x40]
mov al, byte [esi + 9]
cmp al, 2
jne 0x435a62
cmp byte [esi + 8], 0
je 0x435a4f
cmp al, al
jne 0x435a62
test ecx, ecx
je 0x435a62
cmp dword [esp + 0x3c], esi
jne 0x435a62
push esi
call fcn.00438d90
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x435e86
mov al, byte [esi + 9]
cmp al, 2
mov ecx, dword [esi + 0x30]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], 0
jne 0x435d1c
cmp dword [esp + 0x2c], 0
jne 0x435bcb
mov dword [esp + 0x28], 0
mov edi, esi
mov eax, esi
cmp byte [eax + 9], 2
jne 0x435aad
mov edx, dword [eax + 0x34]
cmp edx, dword [edi + 0x34]
jb 0x435aad
ja 0x435aab
mov ecx, dword [eax + 0x30]
cmp ecx, dword [edi + 0x30]
jbe 0x435aad
mov edi, eax
mov eax, dword [eax + 0x24]
test eax, eax
jne 0x435a93
cmp byte [edi + 8], al
mov ebp, dword [edi]
mov dword [esp + 0x2c], edi
jne 0x435b61
mov ecx, dword [esp + 0x88]
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x90]
lea eax, [esp + 0x28]
push eax
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0xa8]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xac]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x28]
push eax
call fcn.00433d80
add esp, 0x1c
test eax, eax
jne 0x435b92
mov edi, edi
cmp dword [0x4e2148], edi
je 0x435b8a
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x8c]
lea edx, [esp + 0x28]
push edx
mov edx, dword [esp + 0x94]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0xa8]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xac]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x28]
push eax
call fcn.00433ea0
add esp, 0x1c
test eax, eax
je 0x435b10
jmp 0x435b92
mov ecx, dword [ebp + 0x20]
push ecx
push ebp
call fcn.00439da0
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0x94]
push eax
call fcn.00439e00
add esp, 0x10
test eax, eax
jne 0x435b92
cmp dword [esp + 0x44], eax
je 0x435b92
mov dword [esp + 0x28], 1
cmp dword [esp + 0x28], 0
mov eax, dword [edi + 0x50]
mov edi, dword [edi + 0x54]
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edi
je 0x435bb6
mov ecx, eax
or ecx, edi
je 0x435bb6
cmp eax, 0xffffffff
jne 0x435bcb
test edi, edi
jne 0x435bcb
xor eax, eax
sub eax, dword [ebp + 0x20]
mov dword [esp + 0x34], eax
mov eax, 1
sbb eax, dword [ebp + 0x24]
mov dword [esp + 0x38], eax
mov eax, dword [esi]
mov edx, dword [eax + 0x3c]
imul edx, dword [eax + 0x38]
add eax, 0x10
cmp dword [esp + 0x6c], 0x10000
mov dword [esp + 0x14], edx
push eax
jae 0x435bf0
lea eax, [esp + 0x9c]
push eax
jmp 0x435bf8
lea ecx, [esp + 0xac]
push ecx
call fcn.00436040
add esp, 8
cmp byte [esi + 8], 4
mov ebp, eax
je 0x435d2e
cmp dword [esp + 0x4c], 0
je 0x435d2e
test ebp, ebp
jne 0x435d2e
mov eax, dword [ebx + 0x1c]
cmp byte [eax + 9], 0x10
jne 0x435c3c
mov edx, dword [eax + 0x3c]
mov eax, dword [edx*4 + 0x4c9904]
test byte [eax + 0x10], 2
je 0x435d2e
cmp esi, dword [esp + 0x2c]
mov edi, dword [esi + 0x50]
mov ebp, dword [esi + 0x54]
je 0x435cdb
mov ecx, dword [esp + 0x14]
mov edx, dword [esi]
push ecx
push edx
call fcn.00439da0
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x94]
push ecx
call fcn.00439e00
add esp, 0x10
test eax, eax
jne 0x435c78
cmp dword [esp + 0x44], eax
jne 0x435cb2
mov edx, dword [esi + 0x30]
cmp edx, dword [esi + 0x50]
jne 0x435c88
mov eax, dword [esi + 0x34]
cmp eax, dword [esi + 0x54]
je 0x435cc1
mov ecx, dword [esi + 0x50]
push ecx
push edx
push str.Lower_address__0x_X__specified_in_the_INI_file_and_the_base_address__0x_X__in_the_INF_file_should_not_differ_if_the_volume_doesnt_have_a_VTF
push 0
push 0x80000015
push 0
push str.FWLIB
call fcn.0043a1a0
add esp, 0x1c
mov eax, 0x80000015
jmp 0x435ef2
mov ecx, edi
or ecx, ebp
je 0x435cc1
cmp edi, 0xffffffff
jne 0x435ce3
test ebp, ebp
jne 0x435ce3
mov eax, dword [esp + 0x2c]
mov edi, dword [esi + 0x30]
sub edi, dword [eax + 0x30]
mov ebp, dword [esi + 0x34]
sbb ebp, dword [eax + 0x34]
add edi, dword [esp + 0x34]
adc ebp, dword [esp + 0x38]
jmp 0x435ce3
mov edi, dword [esp + 0x34]
mov ebp, dword [esp + 0x38]
mov eax, dword [esi]
push ebp
push edi
lea edx, [esp + 0x58]
push edx
push eax
call fcn.00433090
mov ebp, eax
add esp, 0x10
test ebp, ebp
jl 0x435dcc
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x50]
mov edx, dword [esi]
push ecx
push edi
push edx
call fcn.004765e0
push edi
call fcn.00478435
add esp, 0x10
jmp 0x435d2e
cmp al, 0x10
jne 0x435d27
cmp dword [esp + 0x30], 1
je 0x435d7b
mov eax, dword [esi + 0x38]
mov dword [esp + 0x14], eax
cmp byte [esp + 0xc8], 0
je 0x435d4a
mov edi, dword [esp + 0x78]
sub edi, dword [esp + 0x70]
mov ecx, dword [esp + 0x18]
lea edi, [edi + ecx - 1]
jmp 0x435d4c
xor edi, edi
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
push edx
push esi
push edi
push eax
call fcn.00434a80
add esp, 0x10
test eax, eax
jne 0x435d7b
mov ecx, dword [esp + 0x14]
mov edx, dword [esi]
mov eax, dword [esp + 0x1c]
push ecx
push edx
add edi, eax
push edi
call fcn.004765e0
add esp, 0xc
mov esi, dword [esi + 0x24]
test esi, esi
jne 0x435a30
mov edi, dword [esp + 0x1c]
mov dword [0x4e2264], esi
cmp dword [ebx + 0x48], esi
je 0x435df7
push edi
push ebx
call fcn.00437450
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x435df7
cmp ebp, 0x8000000e
je 0x435df7
push esi
push str.ESEC_table_is_not_updated_successfully
push ebp
push esi
push str.FWLIB
call fcn.0043a1a0
add esp, 0x14
mov eax, 0xb006
jmp 0x435ef2
push 0
push str.Error_Rebasing_FV
push ebp
push 0
push str.FWLIB
call fcn.0043a1a0
mov eax, dword [esp + 0x64]
push eax
call fcn.00478435
add esp, 0x18
mov eax, 0x80000015
jmp 0x435ef2
mov eax, dword [esp + 0x40]
test eax, eax
je 0x435e49
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x435e14
cmp dword [esp + 0x30], 0
je 0x435e14
mov ecx, dword [esi + 0x38]
sub dword [ebx + 0x30], ecx
mov ecx, dword [esp + 0x3c]
xor edx, edx
test ebp, ebp
sete dl
push edx
mov edx, dword [esp + 0x14]
push ecx
push eax
push edi
push edx
call fcn.00435140
add esp, 0x14
test esi, esi
je 0x435e41
cmp dword [esp + 0x30], 0
je 0x435e41
mov ecx, dword [esi + 0x38]
add dword [ebx + 0x30], ecx
test eax, eax
je 0x435dc2
mov eax, dword [ebx + 0x1c]
cmp byte [eax + 9], 0x10
jne 0x435e62
mov edx, dword [eax + 0x3c]
mov eax, dword [edx*4 + 0x4c9904]
test byte [eax + 0x10], 2
je 0x435e8a
mov esi, dword [ebx]
push ebx
mov dword [ebx + 4], edi
mov dword [ebx], edi
call fcn.00440ac0
mov ebp, eax
add esp, 4
test ebp, ebp
mov dword [ebx + 4], esi
mov dword [ebx], esi
je 0x435e8a
push edi
call fcn.00478435
add esp, 4
mov eax, ebp
jmp 0x435ef2
cmp dword [0x4e2254], 0
jne 0x435ed3
cmp dword [esp + 0x58], 5
je 0x435ea1
cmp dword [esp + 0x60], 6
jne 0x435ed3
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0x48]
push ecx
push edx
lea eax, [esp + 0x18]
push eax
call fcn.0043def0
add esp, 0xc
test eax, eax
jne 0x435ef2
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x10]
push ecx
push edx
push edi
call fcn.0043e850
add esp, 0xc
test eax, eax
jne 0x435ef2
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x18]
mov dword [eax], edi
mov eax, dword [esp + 0x48]
push eax
mov dword [ecx], edx
call fcn.00478435
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0xb8]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00475cba
add esp, 0xac
ret