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

Disassembly:
sub esp, 0xb4
push ebx
push ebp
mov ebp, dword [ecx + 4]
push esi
push edi
xor edi, edi
xor esi, esi
cmp ebp, edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], 1
je 0x42da1f
lea eax, [esp + 0x50]
mov dword [esp + 0x30], eax
jmp 0x42d3eb
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
cmp dword [ebp + 0xc], edi
jne 0x42da04
cmp esi, 8
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], edi
jge 0x42d420
call fcn.0042cf80
cmp eax, edi
mov dword [esp + 0x14], eax
je 0x42d420
mov ecx, dword [esp + 0x30]
inc esi
mov dword [esp + 0x18], esi
mov dword [ecx], eax
add ecx, 4
mov dword [esp + 0x30], ecx
mov eax, dword [ebp + 0x1c]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edi
mov eax, dword [eax]
mov ecx, eax
mov edx, eax
sar ecx, 2
and dl, 2
and ecx, 3
neg dl
sbb edx, edx
and al, 1
neg edx
inc edx
mov ecx, dword [ecx*4 + 0x499ad4]
neg al
sbb eax, eax
mov dword [esp + 0x2c], ecx
neg eax
inc eax
imul edx, eax
mov eax, dword [esp + 0x10]
mov esi, edx
mov dword [esp + 0x28], esi
mov ebx, dword [eax + 0xc]
mov eax, dword [ebp + 0x74]
sar ebx, cl
test eax, eax
je 0x42d6ea
mov ecx, dword [esp + 0xc8]
test ebx, ebx
mov dword [ebp + ecx*4 + 0x80], 0
jle 0x42d60e
mov edx, dword [ebp + 0x108]
cmp ebx, edx
jge 0x42d49c
mov edx, ebx
test edx, edx
jle 0x42d531
mov al, byte [ebp + 0x112]
test al, al
je 0x42d4d1
test edi, edi
je 0x42d4f2
mov ecx, edx
xor eax, eax
imul ecx, esi
mov esi, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, esi
mov esi, dword [esp + 0x28]
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x20]
jmp 0x42d4f2
mov ecx, dword [ebp + 0x128]
push edx
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, eax
test edx, edx
jne 0x42d4f2
mov al, byte [ebp + 0x113]
test al, al
jne 0x42d60e
mov al, byte [ebp + 0x113]
test al, al
jne 0x42d50a
mov eax, dword [esp + 0xc8]
add dword [ebp + eax*4 + 0x80], edx
test edi, edi
je 0x42d519
mov ecx, edx
imul ecx, esi
add edi, ecx
mov dword [esp + 0x20], edi
mov ecx, dword [ebp + 0x108]
sub ebx, edx
sub ecx, edx
test edx, edx
mov dword [ebp + 0x108], ecx
jg 0x42d606
push ebp
call dword [ebp + 0x74]
add esp, 4
test eax, eax
mov eax, dword [ebp + 0x108]
sete dl
test eax, eax
mov byte [ebp + 0x113], dl
jg 0x42d599
mov al, byte [ebp + 0x110]
test al, al
je 0x42d583
mov eax, dword [ebp + 0x10c]
mov byte [ebp + 0x110], 0
test eax, eax
jge 0x42d590
neg eax
mov dword [ebp + 0x108], eax
mov dword [ebp + 0x10c], 0
mov byte [ebp + 0x112], 1
jmp 0x42d5a0
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx + 4]
mov dword [ebp + 0x108], edx
mov byte [ebp + 0x112], 1
jmp 0x42d5a0
mov byte [ebp + 0x112], 0
mov eax, dword [ebp + 0x12c]
test eax, eax
je 0x42d606
mov ecx, dword [ebp + 0x108]
test ecx, ecx
je 0x42d606
mov cl, byte [ebp + 0x112]
test cl, cl
jne 0x42d606
mov eax, dword [eax + 0xc]
lea ecx, [esp + 0x70]
push eax
call fcn.0042bd00
mov eax, dword [ebp + 0x12c]
cmp dword [eax + 0x78], 9
jne 0x42d5fd
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
sar edx, 2
and edx, 3
mov dword [esp + 0x4c], ecx
mov ecx, dword [edx*4 + 0x499ad4]
mov edx, dword [esp + 0x4c]
shl edx, cl
add dword [eax + 0x90], edx
lea ecx, [esp + 0x70]
call fcn.0042bd30
test ebx, ebx
jg 0x42d490
mov al, byte [ebp + 0x111]
test al, al
je 0x42d6a0
mov eax, dword [esp + 0x10]
mov byte [ebp + 0x111], 0
xor edx, edx
mov dword [esp + 0x80], 2
mov eax, dword [eax + 0xc]
mov dword [esp + 0x84], edx
cmp eax, 0x2b11
mov word [esp + 0x8a], dx
mov word [esp + 0x88], dx
mov dword [esp + 0x8c], eax
jl 0x42d667
mov dword [esp + 0x8c], 0x2b11
mov ecx, 0x8000
mov word [esp + 0x92], cx
mov word [esp + 0x90], cx
cmp dword [esp + 0x14], edx
je 0x42d6a0
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x80]
push ecx
push 0
push eax
mov eax, dword [ebp + 0x1c]
push edx
mov ecx, dword [eax]
push ecx
call fcn.0042e630
add esp, 0x14
mov eax, dword [ebp + 0x78]
test eax, eax
je 0x42d845
mov ecx, dword [eax + 0x98]
test ecx, ecx
je 0x42d845
mov dword [ebp + 0xc], 1
mov edx, dword [eax + 0x30]
mov ecx, dword [edx + 0x274]
test ecx, ecx
je 0x42d845
mov eax, dword [ebp + 0x12c]
test eax, eax
je 0x42d845
push eax
call fcn.0044d100
jmp 0x42d845
test ebx, ebx
jle 0x42d845
mov edi, dword [esp + 0x20]
mov esi, dword [ebp + 0x11c]
mov ecx, dword [ebp + 0x118]
sub esi, ecx
cmp ebx, esi
jge 0x42d70a
mov esi, ebx
test esi, esi
jg 0x42d753
mov ecx, dword [ebp + 0x68]
dec ecx
mov eax, ecx
mov dword [ebp + 0x68], ecx
test eax, eax
jle 0x42d7d9
mov eax, dword [ebp + 0x6c]
mov ecx, dword [esp + 0x2c]
sar eax, cl
mov ecx, dword [ebp + 0x128]
push 1
mov dword [ebp + 0x118], eax
mov eax, dword [esp + 0x28]
mov edx, dword [ecx]
push eax
call dword [edx]
mov ecx, dword [ebp + 0x128]
lea ebp, [eax]
add dword [eax], eax
add byte [ebx + 0x11885], cl
add byte [eax + 0x6a], dl
add byte [ebx + 0x452ff11], cl
mov ecx, dword [ebp + 0x128]
push esi
push edi
mov edx, dword [ecx]
call dword [edx + 4]
test edi, edi
je 0x42d76d
mov eax, esi
imul eax, dword [esp + 0x28]
add edi, eax
mov ecx, dword [ebp + 0x118]
mov eax, dword [ebp + 0x12c]
sub ebx, esi
add ecx, esi
test eax, eax
mov dword [ebp + 0x118], ecx
je 0x42d7cb
mov ecx, eax
mov edx, dword [ecx + 0xc]
lea ecx, [esp + 0x78]
push edx
call fcn.0042bd00
mov eax, dword [ebp + 0x12c]
cmp dword [eax + 0x78], 9
jne 0x42d7c2
mov ecx, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x118]
mov edx, dword [ecx]
sar edx, 2
and edx, 3
mov ecx, dword [edx*4 + 0x499ad4]
shl esi, cl
mov dword [eax + 0x90], esi
lea ecx, [esp + 0x78]
call fcn.0042bd30
test ebx, ebx
jg 0x42d6f6
mov dword [esp + 0x20], edi
jmp 0x42d845
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x20], edi
test eax, eax
je 0x42d807
mov eax, dword [eax + 4]
test eax, eax
je 0x42d807
mov eax, dword [eax + 0x274]
test eax, eax
je 0x42d807
mov edx, dword [ebp + 0x12c]
test edx, edx
je 0x42d807
push edx
mov ecx, eax
call fcn.0044d100
test edi, edi
je 0x42d83e
mov eax, dword [esp + 0x24]
mov ecx, ebx
imul ecx, dword [esp + 0x28]
mov eax, dword [eax]
mov edi, dword [esp + 0x20]
not eax
and eax, 2
mov edx, ecx
shl eax, 6
mov bl, al
mov bh, bl
mov eax, ebx
shl eax, 0x10
mov ax, bx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov dword [ebp + 0xc], 1
mov eax, dword [esp + 0x14]
test eax, eax
je 0x42d8d3
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x14]
lea edi, [esp + 0x48]
mov esi, dword [eax + 0xc]
sar esi, cl
mov ecx, dword [esp + 0x28]
dec esi
imul esi, ecx
mov ebx, ecx
add esi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 0x120]
test ecx, ecx
jne 0x42d8a8
mov ecx, ebx
mov esi, edx
lea edi, [ebp + 0x124]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebp + 0x120], 1
mov ecx, dword [eax + 0x354]
lea esi, [ebp + 0x124]
push esi
mov eax, dword [eax + 0xc]
push ecx
mov ecx, dword [esp + 0x2c]
mov ecx, dword [ecx]
and cl, 0xf
push ecx
push eax
push edx
call fcn.0042e2a0
mov ecx, dword [esp + 0x5c]
add esp, 0x14
mov dword [esi], ecx
mov ecx, dword [ebp + 0x20]
lea eax, [ebp + 0x20]
test ecx, ecx
jle 0x42d91e
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x42d909
mov edx, dword [ebp + 0x114]
push eax
mov eax, dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x1c]
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x354]
push ecx
push edx
push eax
call fcn.0042e630
add esp, 0x14
mov ecx, dword [esp + 0x10]
mov eax, dword [ebp + 0x114]
mov edx, dword [ecx + 0xc]
add eax, edx
mov dword [ebp + 0x114], eax
mov eax, dword [esp + 0x14]
test eax, eax
je 0x42da04
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x42da04
mov ecx, dword [eax + 0x30]
mov edi, dword [eax + 0x6c]
mov esi, dword [eax + 0x70]
add edi, 0x30
mov ebx, dword [ecx + 0x274]
mov ecx, 0x64
mov dword [esp + 0x34], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x38], ecx
xor ecx, ecx
add ebx, 0xcb4
cmp esi, ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], ecx
jne 0x42d986
add eax, 0xc0
lea edx, [esp + 0x34]
push eax
lea eax, [esp + 0x38]
push edx
push eax
call fcn.0042d150
add esp, 0xc
jmp 0x42d9c4
cmp esi, edi
je 0x42d9c4
mov ecx, dword [esi + 0x10]
xor eax, eax
mov al, byte [ecx + 0xb]
cmp eax, 0x62
je 0x42d9a1
cmp eax, 6
je 0x42d9a1
cmp eax, 0x61
jne 0x42d9bd
mov edx, dword [esi + 0x20]
lea eax, [esp + 0x34]
add edx, 0xc0
lea ecx, [esp + 0x34]
push edx
push eax
push ecx
call fcn.0042d150
add esp, 0xc
mov esi, dword [esi + 4]
test esi, esi
jne 0x42d986
lea edx, [esp + 0x34]
push ebx
lea eax, [esp + 0x38]
push edx
push eax
call fcn.0042d150
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x40]
push edx
mov eax, dword [ecx + 0x354]
mov edx, dword [ecx + 0xc]
push eax
sar eax, 2
and eax, 3
mov ecx, dword [eax*4 + 0x499ad4]
mov eax, dword [esp + 0x28]
sar edx, cl
push edx
push eax
call fcn.0042d240
add esp, 0x1c
mov ebp, dword [ebp + 4]
xor edi, edi
cmp ebp, edi
jne 0x42d3e3
cmp dword [esp + 0x1c], edi
je 0x42da24
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
inc dword [ecx + 8]
jmp 0x42da2f
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov dword [ecx + 8], edi
mov eax, dword [ecx + 0x354]
mov edx, eax
not edx
test dl, 2
mov edx, dword [esp + 0xc8]
mov edx, dword [ecx + edx*4 + 0x28]
je 0x42db6c
cmp esi, edi
jne 0x42da6e
mov ecx, dword [ecx + 0x24]
mov eax, 0x80808080
mov edi, edx
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
jmp 0x42dc7b
cmp esi, 1
jne 0x42da93
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x50]
mov edi, edx
mov ecx, dword [eax + 0x24]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x42dc7b
cmp esi, 2
jne 0x42daea
mov esi, dword [esp + 0x50]
mov ecx, edx
mov edx, dword [esp + 0x10]
test al, 1
mov edx, dword [edx + 0x20]
je 0x42daab
add edx, edx
mov eax, edx
dec edx
test eax, eax
je 0x42dc7b
mov edi, dword [esp + 0x54]
sub edi, esi
inc edx
xor eax, eax
xor ebx, ebx
mov al, byte [edi + esi]
mov bl, byte [esi]
inc esi
lea eax, [eax + ebx - 0x80]
test eax, 0xffff00
je 0x42dadf
test eax, eax
setge al
dec eax
and al, 1
add eax, 0xff
mov byte [ecx], al
inc ecx
dec edx
jne 0x42dabd
jmp 0x42dc7b
mov ebx, dword [esp + 0x18]
lea esi, [esp + 0x50]
mov ecx, ebx
lea edi, [esp + 0x50]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x10]
mov ebp, edx
shl ebx, 7
mov ecx, dword [ecx + 0x20]
mov edx, 0x80
sub edx, ebx
test al, 1
je 0x42db13
add ecx, ecx
mov eax, ecx
dec ecx
test eax, eax
je 0x42dc7b
inc ecx
mov dword [esp + 0x1c], ecx
mov edi, dword [esp + 0x18]
mov ecx, edx
lea eax, [esp + edi*4 + 0x4c]
mov esi, dword [eax]
xor ebx, ebx
sub eax, 4
mov bl, byte [esi]
add ecx, ebx
inc esi
mov dword [eax + 4], esi
dec edi
test edi, edi
ja 0x42db2d
test ecx, 0xffff00
je 0x42db58
test ecx, ecx
setge cl
dec ecx
and cl, 1
add ecx, 0xff
mov eax, dword [esp + 0x1c]
mov byte [ebp], cl
inc ebp
dec eax
mov dword [esp + 0x1c], eax
jne 0x42db23
jmp 0x42dc7b
cmp esi, edi
jne 0x42db7a
mov ecx, dword [ecx + 0x24]
xor eax, eax
jmp 0x42da59
cmp esi, 1
jne 0x42db9f
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x50]
mov edi, edx
mov ecx, dword [eax + 0x24]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x42dc7b
cmp esi, 2
jne 0x42dc02
mov esi, dword [esp + 0x50]
mov ecx, edx
mov edx, dword [esp + 0x10]
test al, 1
mov edx, dword [edx + 0x20]
je 0x42dbb7
add edx, edx
mov eax, edx
dec edx
test eax, eax
je 0x42dc7b
mov edi, dword [esp + 0x54]
lea ebp, [edx + 1]
sub edi, esi
movsx eax, word [edi + esi]
movsx edx, word [esi]
add eax, edx
add esi, 2
movsx edx, ax
cmp edx, eax
je 0x42dbf7
xor edx, edx
test eax, eax
setge dl
dec edx
and edx, 0xffff0001
add edx, 0x7fff
mov word [ecx], dx
jmp 0x42dbfa
mov word [ecx], ax
add ecx, 2
dec ebp
jne 0x42dbcb
jmp 0x42dc7b
mov ebx, dword [esp + 0x18]
lea esi, [esp + 0x50]
mov ecx, ebx
lea edi, [esp + 0x50]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x10]
mov edi, edx
test al, 1
mov ecx, dword [ecx + 0x20]
je 0x42dc21
add ecx, ecx
mov edx, ecx
dec ecx
test edx, edx
je 0x42dc7b
inc ecx
mov dword [esp + 0x1c], ecx
xor esi, esi
lea eax, [esp + ebx*4 + 0x4c]
lea edx, [ebx]
mov ecx, dword [eax]
sub eax, 4
movsx ebp, word [ecx]
add ecx, 2
add esi, ebp
mov dword [eax + 4], ecx
dec edx
test edx, edx
ja 0x42dc35
movsx eax, si
cmp eax, esi
je 0x42dc6a
xor ecx, ecx
test esi, esi
setge cl
dec ecx
and ecx, 0xffff0001
add ecx, 0x7fff
mov word [edi], cx
jmp 0x42dc6d
mov word [edi], si
mov eax, dword [esp + 0x1c]
add edi, 2
dec eax
mov dword [esp + 0x1c], eax
jne 0x42dc2d
mov edx, dword [esp + 0x10]
pop edi
pop esi
pop ebp
mov dword [edx + 0xac], 0
pop ebx
add esp, 0xb4
ret 4