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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x493491
mov eax, dword fs:[0]
push eax
sub esp, 0xc0
push ebx
push esi
push edi
mov eax, dword [0x4ae680]
xor eax, esp
push eax
lea eax, [esp + 0xd0]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
mov esi, ebx
call fcn.0043a650
call fcn.0044c190
push eax
call fcn.00451ae0
call fcn.0044c190
mov esi, dword [eax + 0x300]
add eax, 0x2fc
call fcn.0044c190
mov edi, dword [eax + 0x2d0]
add eax, 0x2c4
call fcn.0044c190
add eax, 0x2fc
mov eax, dword [eax + 0xc]
test edi, edi
je 0x43d903
test eax, eax
je 0x43d903
imul eax, edi
lea edi, [eax*4 + 4]
push edi
mov dword [esp + 0x44], edi
call fcn.00455fac
add esp, 4
push edi
xor edi, edi
push edi
push eax
mov dword [ebx + 0xc4], eax
call fcn.00478090
add esp, 0xc
lea ecx, [esp + 0x24]
call fcn.0040c270
mov dword [esp + 0xd8], edi
call fcn.0045ded3
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x43d158
push 0x80004005
call fcn.00407700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x3c], eax
mov byte [esp + 0xd8], 1
test esi, esi
je 0x43d4f8
call fcn.0044c190
mov eax, esi
mov esi, dword [esi]
add eax, 8
push eax
lea ecx, [esp + 0x40]
mov dword [esp + 0x3c], esi
call fcn.004077a0
call fcn.0044c190
add eax, 0x2c4
mov eax, dword [eax + 4]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x43d4f0
cmp dword [0x4b29e8], 0
jne 0x43d1e9
push 0x370
call fcn.00455f7d
add esp, 4
mov dword [esp + 0x18], eax
mov byte [esp + 0xd8], 2
test eax, eax
je 0x43d1da
mov esi, eax
call fcn.0044ba50
jmp 0x43d1dc
xor eax, eax
mov byte [esp + 0xd8], 1
mov dword [0x4b29e8], eax
mov ebx, dword [esp + 0x1c]
mov ecx, dword [ebx]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebx + 8]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
mov dword [esp + 0x20], ebx
cmp eax, esi
je 0x43d255
cmp dword [esi + 0xc], 0
jl 0x43d247
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x43d247
push eax
call fcn.00407730
mov dword [esp + 0x1c], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43d23a
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [esp + 0x18]
add ecx, 0x10
mov dword [esp + 0x24], ecx
jmp 0x43d255
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x2c]
call fcn.00407670
mov ecx, dword [ebx + 0xc]
mov esi, dword [esp + 0x28]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x43d2b3
cmp dword [esi + 0xc], 0
jl 0x43d2a5
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x43d2a5
push eax
call fcn.00407730
mov dword [esp + 0x1c], eax
add esp, 4
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x43d298
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [esp + 0x18]
add ecx, 0x10
mov dword [esp + 0x28], ecx
jmp 0x43d2b3
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x30]
call fcn.00407670
mov ecx, dword [ebx + 0x10]
mov esi, dword [esp + 0x2c]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x43d315
cmp dword [esi + 0xc], 0
lea ebx, [esi + 0xc]
jl 0x43d303
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x43d303
push eax
call fcn.00407730
mov dword [esp + 0x1c], eax
add esp, 4
or eax, 0xffffffff
lock xadd dword [ebx], eax
dec eax
test eax, eax
jg 0x43d2f6
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov ecx, dword [esp + 0x18]
add ecx, 0x10
mov dword [esp + 0x2c], ecx
jmp 0x43d311
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea ecx, [esp + 0x34]
call fcn.00407670
mov ebx, dword [esp + 0x20]
mov dx, word [ebx + 0x14]
mov ecx, dword [esp + 0x24]
mov word [esp + 0x30], dx
mov al, byte [ebx + 0x16]
mov byte [esp + 0x32], al
xor eax, eax
test ecx, ecx
setne al
test eax, eax
je 0x43d14e
push ecx
mov ecx, dword [esp + 0x40]
push ecx
call fcn.00476a04
add esp, 8
test eax, eax
sete al
test al, al
je 0x43d4de
mov edx, dword [esp + 0x2c]
push str.RegWrite
push edx
call fcn.00476a04
add esp, 8
test eax, eax
sete al
test al, al
je 0x43d380
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc4]
mov byte [edi + ecx], 0x10
jmp 0x43d4b0
mov edx, dword [esp + 0x2c]
push str.RegRead
push edx
call fcn.00476a04
add esp, 8
test eax, eax
sete al
test al, al
je 0x43d3ad
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc4]
mov byte [edi + ecx], 0x20
jmp 0x43d4b0
mov edx, dword [esp + 0x2c]
push str.WriteAnd
push edx
call fcn.00476a04
add esp, 8
test eax, eax
sete al
test al, al
je 0x43d3da
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc4]
mov byte [edi + ecx], 0x11
jmp 0x43d4b0
mov edx, dword [esp + 0x2c]
push str.ReadAnd
push edx
call fcn.00476a04
add esp, 8
test eax, eax
sete al
test al, al
je 0x43d407
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc4]
mov byte [edi + ecx], 0x21
jmp 0x43d4b0
mov edx, dword [esp + 0x2c]
push str.WriteOR
push edx
call fcn.00476a04
add esp, 8
test eax, eax
sete al
test al, al
je 0x43d434
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc4]
mov byte [edi + ecx], 0x12
jmp 0x43d4b0
mov edx, dword [esp + 0x2c]
push str.ReadOR
push edx
call fcn.00476a04
add esp, 8
test eax, eax
sete al
test al, al
je 0x43d45e
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc4]
mov byte [edi + ecx], 0x22
jmp 0x43d4b0
mov edx, dword [esp + 0x2c]
push str.ReInit
push edx
call fcn.00476a04
add esp, 8
test eax, eax
sete al
test al, al
je 0x43d488
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc4]
mov byte [edi + ecx], 0x30
jmp 0x43d4b0
mov edx, dword [esp + 0x2c]
push str.InitEnd
push edx
call fcn.00476a04
add esp, 8
test eax, eax
sete al
test al, al
mov eax, dword [ebp + 8]
je 0x43d4b1
mov ecx, dword [eax + 0xc4]
mov byte [edi + ecx], 0x31
inc edi
mov edx, dword [esp + 0x30]
mov ecx, dword [eax + 0xc4]
shr edx, 8
mov byte [edi + ecx], dl
mov edx, dword [eax + 0xc4]
mov cl, byte [esp + 0x30]
inc edi
mov byte [edi + edx], cl
mov edx, dword [eax + 0xc4]
mov al, byte [esp + 0x32]
inc edi
mov byte [edi + edx], al
inc edi
cmp dword [esp + 0x1c], 0
jne 0x43d1ab
mov esi, dword [esp + 0x38]
mov ebx, dword [ebp + 8]
test esi, esi
jne 0x43d178
call fcn.0044c190
mov edx, dword [ebx + 0xc4]
mov esi, 0xffa
call fcn.00453700
movzx eax, ax
mov ecx, eax
shr ecx, 8
mov byte [edx + 0xffa], cl
mov edx, dword [ebx + 0xc4]
mov byte [edx + 0xffb], al
mov dword [esp + 0x34], vtable.CFlashReg.0
mov byte [esp + 0xd8], 3
call fcn.0044c190
cmp byte [eax + 0x6d], 0
mov byte [esp + 0x14], 0x51
je 0x43d55a
call fcn.0044c190
push 1
lea eax, [esp + 0x18]
push eax
push 0x40e0
jmp 0x43d56b
call fcn.0044c190
push 1
lea ecx, [esp + 0x18]
push ecx
push 0x40d0
call fcn.0044c630
push 1
call fcn.0044c190
mov edx, dword [ebx + 0xc4]
add eax, 0x270
push eax
push 0x1000
push 0x1b0000
push edx
lea ecx, [esp + 0x48]
call fcn.00417980
call fcn.0044c190
mov ecx, dword [ebx + 0xc4]
push 6
push 0x1b0000
lea esi, [ebx + 0x78]
push esi
lea eax, [ebx + 0x1ba8]
push eax
push edi
push ecx
call fcn.0044ce80
push 2
push 0x49cb24
mov ecx, esi
call fcn.0040b720
lea edx, [esp + 0x44]
push edx
call fcn.00436170
mov byte [esp + 0xd8], 4
call fcn.0045ded3
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x43d5f5
push 0x80004005
call fcn.00407700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov byte [esp + 0xd8], 5
call fcn.0044c190
add eax, 0x268
mov eax, dword [eax]
push 0x49aa48
push eax
call fcn.00476a04
add esp, 8
test eax, eax
sete al
lea ecx, [esp + 0x20]
test al, al
je 0x43d63b
push str.___________________Downloading
jmp 0x43d640
push 0x49dc28
call fcn.004073a0
mov eax, dword [esp + 0x20]
push 6
push 0
push ecx
add eax, 0xfffffff0
mov dword [esp + 0x44], esp
mov esi, esp
push eax
mov dword [esp + 0x48], eax
call fcn.00407730
add eax, 0x10
mov dword [esi], eax
add esp, 4
lea esi, [esp + 0x50]
call fcn.00401060
mov ecx, esi
call fcn.0045dc27
lea edi, [ebx + 0xc8]
call fcn.0044c190
add eax, 0x270
push eax
push 0x1000
push 0x1b0000
push edi
lea ecx, [esp + 0x44]
call fcn.00417bb0
mov eax, dword [esp + 0x40]
cmp eax, 0xffa
jg 0x43d6b1
mov ecx, eax
mov dword [esp + 0x1c], ecx
jmp 0x43d6bd
mov dword [esp + 0x1c], 0xffa
mov ecx, dword [esp + 0x1c]
xor eax, eax
mov dword [ebx + 0x10c8], 1
test ecx, ecx
jle 0x43d6ec
mov esi, dword [ebx + 0xc4]
mov dl, byte [esi + eax]
cmp dl, byte [edi + eax]
jne 0x43d6e2
inc eax
cmp eax, ecx
jl 0x43d6d3
jmp 0x43d6ec
mov dword [ebx + 0x10c8], 0
cmp dword [ebx + 0x10c8], 0
mov dword [esp + 0x18], 0
jne 0x43d809
mov eax, dword [0x4b29e8]
mov dword [ebx + 0x10c8], 1
test eax, eax
jne 0x43d749
push 0x370
call fcn.00455f7d
add esp, 4
mov dword [esp + 0x40], eax
mov byte [esp + 0xd8], 6
test eax, eax
je 0x43d73a
mov esi, eax
call fcn.0044ba50
jmp 0x43d73c
xor eax, eax
mov byte [esp + 0xd8], 5
mov dword [0x4b29e8], eax
push 1
add eax, 0x270
push eax
mov eax, dword [ebx + 0xc4]
push 0x1000
push 0x1b0000
push eax
lea ecx, [esp + 0x48]
call fcn.00417980
mov eax, dword [0x4b29e8]
test eax, eax
jne 0x43d7a9
push 0x370
call fcn.00455f7d
add esp, 4
mov dword [esp + 0x40], eax
mov byte [esp + 0xd8], 7
test eax, eax
je 0x43d79a
mov esi, eax
call fcn.0044ba50
jmp 0x43d79c
xor eax, eax
mov byte [esp + 0xd8], 5
mov dword [0x4b29e8], eax
add eax, 0x270
push eax
push 0x1000
push 0x1b0000
push edi
lea ecx, [esp + 0x44]
call fcn.00417bb0
xor eax, eax
cmp dword [esp + 0x1c], eax
jle 0x43d7ee
mov esi, dword [ebx + 0xc4]
mov ecx, dword [esp + 0x1c]
mov dl, byte [esi + eax]
cmp dl, byte [edi + eax]
jne 0x43d7e4
inc eax
cmp eax, ecx
jl 0x43d7d5
jmp 0x43d7ee
mov dword [ebx + 0x10c8], 0
mov eax, dword [esp + 0x18]
inc eax
mov dword [esp + 0x18], eax
cmp eax, 5
je 0x43d809
cmp dword [ebx + 0x10c8], 0
je 0x43d701
push 0x1000
push 0
push edi
call fcn.00478090
mov eax, dword [ebx + 0xc4]
add esp, 0xc
push eax
call fcn.00455fb7
mov eax, dword [esp + 0x3c]
add esp, 4
mov dword [ebx + 0xc4], 0
mov byte [esp + 0xd8], 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43d857
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x44]
mov byte [esp + 0xd8], 3
call fcn.00436270
mov byte [esp + 0xd8], 0
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov dword [esp + 0x34], vtable.CFlashReg.0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43d898
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0xd8], 0xffffffff
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43d8c3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43d8e3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x43d903
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0xd0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4