Function at 0x430e40
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0xf0
push ebx
push ebp
push esi
mov esi, dword [esp + 0x100]
mov ebp, dword [esi + 0x50]
mov ecx, dword [ebp + 0x48]
mov eax, dword [esi + 0x40]
xor ebx, ebx
push ecx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ebp
call fcn.0042e2e0
add esp, 4
cmp eax, ebx
jne 0x431ac0
mov al, byte [esi + 4]
test al, al
je 0x430eec
mov al, byte [esi + 3]
test al, al
je 0x430eec
mov al, byte [esi + 6]
test al, al
je 0x430eec
cmp byte [esi + 2], 1
jne 0x430eec
mov dx, word [esi + 0x1c]
cmp dx, word [esi + 0x14]
jne 0x430eec
mov eax, dword [esi + 0x50]
cmp dword [eax + 0x4c], 1
je 0x430eec
movzx ecx, byte [ebp + 8]
mov edx, dword [ebp + 0x44]
lea eax, [ecx + edx + 8]
movzx edx, byte [eax + 2]
xor ecx, ecx
mov ch, byte [eax]
mov cl, byte [eax + 1]
movzx eax, byte [eax + 3]
shl ecx, 8
or ecx, edx
shl ecx, 8
or ecx, eax
cmp ecx, dword [esi + 0x4c]
jne 0x430eec
push ebp
mov ecx, esi
call fcn.00430c50
add esp, 4
pop esi
pop ebp
pop ebx
add esp, 0xf0
ret
mov al, byte [ebp + 1]
test al, al
push edi
je 0x430f45
movzx edi, word [ebp + 0x14]
mov ecx, dword [esi + 0x4c]
xor esi, esi
cmp edi, ebx
mov dword [esp + 0x38], ecx
jle 0x430f49
movzx ecx, word [ebp + 0xe]
mov eax, dword [ebp + 0x44]
add ecx, eax
mov edi, edi
movzx eax, byte [ecx + 1]
mov ah, byte [ecx]
mov edx, dword [ebp + 0x44]
movzx ebx, byte [eax + edx + 2]
add eax, edx
xor edx, edx
mov dh, byte [eax]
mov dl, byte [eax + 1]
movzx eax, byte [eax + 3]
shl edx, 8
or edx, ebx
shl edx, 8
or edx, eax
cmp edx, dword [esp + 0x38]
je 0x430f49
inc esi
add ecx, 2
cmp esi, edi
jl 0x430f10
jmp 0x430f49
movzx esi, word [esi + 0x10]
mov eax, dword [ebp + 0x48]
mov cx, word [eax + 0x22]
xor edi, edi
cmp cx, di
mov dword [esp + 0x30], edi
mov dword [esp + 0x14], edi
jne 0x430f66
call fcn.00411720
jmp 0x430f6b
inc ecx
mov word [eax + 0x22], cx
movzx ecx, word [ebp + 0x14]
lea eax, [esi - 1]
lea edx, [eax + 3]
cmp edx, ecx
mov dword [esp + 0x28], eax
jle 0x430f84
lea eax, [ecx - 2]
mov dword [esp + 0x28], eax
cmp eax, edi
jge 0x430f8e
xor eax, eax
mov dword [esp + 0x28], eax
mov ecx, eax
add eax, eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x34], eax
lea ebx, [ebx]
movzx eax, word [ebp + 0x14]
cmp ecx, eax
jge 0x430fc6
movzx ecx, word [ebp + 0xe]
mov eax, dword [ebp + 0x44]
mov edx, dword [esp + 0x34]
add ecx, eax
add ecx, edx
xor edx, edx
mov dh, byte [ecx]
mov dl, byte [ecx + 1]
add eax, edx
mov dword [esp + edi + 0x74], eax
jmp 0x430fd7
jne 0x4310c9
movzx ecx, byte [ebp + 8]
mov edx, dword [ebp + 0x44]
lea eax, [ecx + edx + 8]
movzx ecx, byte [eax + 1]
mov ch, byte [eax]
movzx edx, byte [eax + 2]
movzx eax, byte [eax + 3]
shl ecx, 8
or ecx, edx
shl ecx, 8
or ecx, eax
mov esi, ecx
test esi, esi
mov dword [esp + edi + 0xb4], ecx
je 0x4310bf
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x38]
push 0
push ecx
mov ecx, dword [edx]
mov eax, esi
call fcn.0042e0c0
add esp, 8
test eax, eax
jne 0x431066
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
test ecx, ecx
je 0x43102e
mov ecx, dword [ecx + 0x38]
lea ebx, [ecx + eax + 0x30]
jmp 0x431030
xor ebx, ebx
cmp esi, 1
setne cl
dec cl
lea edx, [eax + 0x30]
mov dword [ebx + 0x48], eax
mov eax, dword [esp + 0x24]
mov dword [ebx + 0x40], eax
mov dword [ebx + 0x44], edx
mov dword [ebx + 0x4c], esi
and ecx, 0x64
mov byte [ebx + 8], cl
mov cl, byte [ebx]
xor eax, eax
test cl, cl
mov dword [esp + edi + 0x54], ebx
jne 0x431066
push ebp
call fcn.00411f80
add esp, 4
test eax, eax
mov esi, eax
jne 0x431a72
mov eax, dword [esp + edi + 0x54]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x18]
inc edx
mov word [eax + 0x10], cx
mov dword [esp + 0x14], edx
movzx edx, word [eax + 0x14]
movzx eax, byte [eax + 2]
mov dword [esp + edi + 0xa8], esi
mov esi, dword [esp + 0x34]
add eax, ebx
add esi, 2
inc ecx
add edi, 4
cmp edi, 0xc
lea edx, [eax + edx + 1]
mov dword [esp + 0x18], edx
mov dword [esp + 0x34], esi
mov dword [esp + 0x3c], ecx
jge 0x4310c9
jmp 0x430fa0
mov esi, 0xb
jmp 0x431a72
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
movzx ecx, word [eax + 0x18]
mov dl, byte [eax + 0x12]
inc esi
and esi, 0xfffffffe
add ecx, esi
neg dl
sbb edx, edx
and edx, esi
lea edi, [edx + ecx*8 + 0x108]
test edi, edi
jle 0x43114e
mov eax, dword [0x4696e8]
test eax, eax
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
je 0x431111
mov eax, dword [0x4696f0]
test eax, eax
jle 0x431111
call ebx
cmp dword [0x4696cc], eax
je 0x43114e
push edi
call dword [sym.imp.MSVCR71.dll_malloc]
add esp, 4
test eax, eax
mov dword [esp + 0x18], eax
jne 0x431158
mov eax, dword [0x4696e8]
test eax, eax
je 0x43113f
mov eax, dword [0x4696f0]
test eax, eax
jle 0x43113f
call ebx
cmp dword [0x4696cc], eax
je 0x43114e
call fcn.00410f50
mov dword [0x4696e8], 1
mov esi, 7
jmp 0x431a72
mov ebx, dword [esp + 0x24]
lea ecx, [eax + esi*4]
movzx eax, word [ebx + 0x18]
mov dword [esp + 0x2c], ecx
lea ecx, [ecx + esi*4]
mov dword [esp + 0x60], ecx
lea ecx, [eax + ecx + 0x58]
mov dword [esp + 0x64], ecx
lea ecx, [eax + ecx + 0x58]
mov edx, ecx
mov dword [esp + 0x68], ecx
lea ecx, [eax + edx + 0x58]
mov dl, byte [ebx + 0x12]
test dl, dl
mov dword [esp + 0x50], ecx
je 0x431198
lea ecx, [ecx + eax*4]
add ecx, eax
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x14]
xor edx, edx
test ecx, ecx
jle 0x4311ea
movzx ecx, word [ebx + 0x18]
mov eax, dword [esp + edx*4 + 0x60]
mov esi, dword [esp + edx*4 + 0x54]
add eax, ecx
mov edi, eax
sub edi, ecx
mov dword [eax + 0x44], edi
movzx ecx, word [ebx + 0x18]
mov esi, dword [esi + 0x44]
add ecx, 0x54
mov ebp, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
movzx ecx, word [ebx + 0x18]
mov esi, eax
sub esi, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + edx*4 + 0xa8], eax
inc edx
cmp edx, ecx
mov dword [eax + 0x44], esi
jl 0x4311a2
mov esi, dword [esp + 0x104]
mov dl, byte [esi + 4]
movzx eax, dl
shl eax, 2
mov dword [esp + 0x34], eax
mov al, byte [esi + 6]
xor edi, edi
test al, al
mov dword [esp + 0x3c], edi
je 0x431217
test dl, dl
mov dword [esp + 0x44], 1
jne 0x43121f
mov dword [esp + 0x44], 0
xor eax, eax
test ecx, ecx
mov dword [esp + 0x1c], eax
jle 0x431430
lea ecx, [ecx]
mov ebx, dword [esp + eax*4 + 0xa8]
movzx ecx, word [ebx + 0x14]
movzx edx, byte [ebx + 2]
add ecx, edx
test ecx, ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x10], 0
jle 0x43132b
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
sub ecx, eax
lea ebp, [eax + edi*4]
mov dword [esp + 0x38], ecx
movzx eax, byte [ebx + 2]
dec eax
mov esi, dword [esp + 0x10]
js 0x43128c
lea ecx, [ebx + eax*8 + 0x18]
movzx edx, word [ecx + 4]
cmp edx, esi
jg 0x431284
je 0x4312fe
dec esi
dec eax
sub ecx, 8
test eax, eax
jge 0x431275
movzx ecx, word [ebx + 0xe]
mov eax, dword [ebx + 0x44]
add ecx, eax
movzx edx, byte [ecx + esi*2 + 1]
mov dh, byte [ecx + esi*2]
lea esi, [ecx + esi*2]
add eax, edx
push eax
push ebx
lea esi, [esp + 0xc8]
mov dword [ebp], eax
call fcn.00411c20
movzx eax, word [esp + 0xe6]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
mov dword [ecx + ebp], eax
mov al, byte [edx + 0x12]
add esp, 8
test al, al
je 0x43130a
mov al, byte [esp + 0x1c]
mov ecx, dword [esp + 0x48]
mov byte [ecx + edi], al
movzx ecx, byte [ebx + 2]
xor eax, eax
test ecx, ecx
jle 0x43130a
mov esi, dword [ebp]
lea edx, [ebx + 0x18]
jmp 0x4312f0
cmp dword [edx], esi
je 0x431302
inc eax
add edx, 8
cmp eax, ecx
jl 0x4312f0
jmp 0x43130a
mov eax, dword [ecx]
jmp 0x4312a2
mov edx, dword [esp + 0x48]
mov byte [edx + edi], 0xff
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x4c]
inc edi
add ebp, 4
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x431266
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x3c], edi
mov ecx, dword [esp + 0x14]
dec ecx
cmp eax, ecx
jge 0x43141f
mov ebp, dword [esp + eax*4 + 0x74]
mov eax, dword [esp + 0x20]
push ebp
push eax
lea esi, [esp + 0x90]
call fcn.00411c20
mov ecx, dword [esp + 0x4c]
movzx eax, word [esp + 0xae]
add esp, 8
test ecx, ecx
je 0x431379
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
push ecx
mov ecx, eax
call fcn.004125a0
add esp, 4
jmp 0x43141b
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x40]
mov dword [edx + edi*4], eax
mov edx, dword [esp + 0x50]
add edx, ecx
add ecx, eax
mov dword [esp + 0x40], ecx
mov ecx, eax
mov esi, ebp
mov ebp, ecx
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x3c]
add edx, ecx
mov ecx, dword [esp + 0x18]
mov dword [ecx + edi*4], edx
mov edx, dword [esp + 0x24]
mov cl, byte [edx + 0x12]
test cl, cl
je 0x4313c8
mov ecx, dword [esp + 0x48]
mov byte [ecx + edi], 0xff
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
push edx
mov ecx, eax
call fcn.004125a0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
mov esi, dword [eax + edi*4]
sub esi, ecx
mov dword [eax + edi*4], esi
mov dl, byte [ebx + 4]
add esp, 4
test dl, dl
mov ecx, esi
jne 0x43140a
movzx edx, byte [ebx + 8]
mov eax, dword [ebx + 0x44]
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + edi*4]
mov edx, dword [edx + eax + 8]
mov dword [ecx], edx
jmp 0x431416
cmp ecx, 4
jge 0x431416
mov dword [eax + edi*4], 4
inc edi
mov dword [esp + 0x3c], edi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
inc eax
cmp eax, ecx
mov dword [esp + 0x1c], eax
jl 0x431230
mov eax, dword [esp + 0x24]
movzx ecx, word [eax + 0x1a]
mov edx, dword [esp + 0x34]
lea esi, [ecx + edx - 0xc]
xor ecx, ecx
xor ebx, ebx
xor eax, eax
test edi, edi
jle 0x431479
mov ebp, dword [esp + 0x44]
mov edi, edi
mov edx, dword [esp + 0x2c]
mov edx, dword [edx + ecx*4]
lea eax, [eax + edx + 2]
cmp eax, esi
jle 0x431474
sub eax, edx
test ebp, ebp
mov dword [esp + ebx*4 + 0x88], eax
mov dword [esp + ebx*4 + 0x74], ecx
je 0x431471
dec ecx
xor eax, eax
inc ebx
inc ecx
cmp ecx, edi
jl 0x431450
mov dword [esp + ebx*4 + 0x74], edi
inc ebx
mov dword [esp + ebx*4 + 0x84], eax
lea edi, [ebx - 1]
test edi, edi
mov dword [esp + 0x4c], ebx
jle 0x431500
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + edi*4 + 0x88]
mov esi, dword [esp + edi*4 + 0x84]
mov eax, dword [esp + edi*4 + 0x70]
mov ebp, dword [esp + 0x44]
dec eax
mov ecx, eax
sub ecx, ebp
inc ecx
test edx, edx
je 0x4314cb
mov ebp, esi
sub ebp, dword [ebx + eax*4]
mov ebx, dword [ebx + ecx*4]
sub ebp, 2
lea ebx, [ebx + edx + 2]
cmp ebx, ebp
jg 0x4314e9
mov ebx, dword [esp + 0x2c]
mov ecx, dword [ebx + ecx*4]
mov ebp, dword [ebx + eax*4]
mov eax, dword [esp + edi*4 + 0x70]
lea edx, [edx + ecx + 2]
mov ecx, 0xfffffffe
sub ecx, ebp
add esi, ecx
dec eax
mov dword [esp + edi*4 + 0x70], eax
jmp 0x4314a2
mov dword [esp + edi*4 + 0x88], edx
mov dword [esp + edi*4 + 0x84], esi
dec edi
test edi, edi
jg 0x431490
mov ebx, dword [esp + 0x4c]
mov edx, dword [esp + 0x104]
mov eax, dword [edx + 0x44]
movzx ecx, byte [eax]
xor edi, edi
test ebx, ebx
mov dword [esp + 0x38], ecx
jle 0x4315c0
jmp 0x431520
cmp edi, dword [esp + 0x14]
jge 0x431569
mov ebp, dword [esp + edi*4 + 0x54]
mov eax, dword [ebp + 0x48]
mov edx, dword [esp + edi*4 + 0xb4]
push eax
mov dword [esp + edi*4 + 0x64], ebp
mov dword [esp + 0x14], ebp
mov dword [esp + edi*4 + 0x8c], edx
mov dword [esp + edi*4 + 0x58], 0
call fcn.0042e2e0
mov ecx, dword [esp + 0x34]
add esp, 4
mov esi, eax
inc ecx
test esi, esi
mov dword [esp + 0x30], ecx
jne 0x431a60
jmp 0x4315a8
mov ecx, dword [esp + edi*4 + 0x84]
lea eax, [esp + edi*4 + 0x88]
push 0
push ecx
push eax
mov eax, dword [esp + 0x30]
lea edx, [esp + 0x1c]
push edx
push eax
call fcn.0042fd00
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x431a60
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x10]
inc eax
mov dword [esp + edi*4 + 0x60], ebp
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x38]
push ecx
mov esi, ebp
call fcn.004120f0
add esp, 4
inc edi
cmp edi, ebx
jl 0x431520
cmp edi, dword [esp + 0x14]
jge 0x4315fa
mov ebp, dword [esp + edi*4 + 0x54]
push ebp
call fcn.004302c0
mov esi, eax
add esp, 4
test esi, esi
jne 0x431a60
test ebp, ebp
je 0x4315e9
mov eax, dword [ebp + 0x48]
call fcn.00427b20
mov eax, dword [esp + 0x14]
mov dword [esp + edi*4 + 0x54], 0
inc edi
cmp edi, eax
jl 0x4315c6
lea ecx, [ebx - 1]
xor eax, eax
test ecx, ecx
jle 0x431686
jmp 0x431610
lea ecx, [esp + eax*4 + 0x88]
mov dword [esp + 0x4c], ecx
mov ecx, dword [ecx]
lea ebp, [eax + 1]
cmp ebp, ebx
mov dword [esp + 0x10], ecx
mov esi, ecx
mov edx, eax
mov dword [esp + 0x1c], ebp
mov ecx, ebp
jge 0x43167d
mov edi, dword [esp + ecx*4 + 0x88]
cmp edi, esi
jae 0x431641
mov edx, ecx
mov esi, edi
inc ecx
cmp ecx, ebx
jl 0x431632
cmp edx, eax
jle 0x43167d
mov edi, dword [esp + edx*4 + 0x88]
mov ebp, dword [esp + 0x4c]
mov esi, dword [esp + eax*4 + 0x60]
lea ecx, [esp + edx*4 + 0x88]
lea eax, [esp + eax*4 + 0x60]
mov dword [ebp], edi
mov edi, dword [esp + edx*4 + 0x60]
mov ebp, dword [esp + 0x1c]
lea edx, [esp + edx*4 + 0x60]
mov dword [eax], edi
mov eax, dword [esp + 0x10]
mov dword [ecx], eax
mov dword [edx], esi
mov eax, ebp
lea ecx, [ebx - 1]
cmp eax, ecx
jl 0x431610
mov ebx, dword [esp + 0x30]
xor esi, esi
xor ebp, ebp
test ebx, ebx
mov dword [esp + 0x1c], esi
jle 0x431961
lea ebx, [ebx]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + esi*4 + 0x74]
mov ebx, dword [esp + esi*4 + 0x60]
lea edx, [ecx + ebp*4]
push edx
lea ecx, [eax + ebp*4]
push ecx
mov edx, edi
sub edx, ebp
push edx
push ebx
call fcn.0041a8c0
mov eax, dword [esp + 0x34]
mov cl, byte [eax + 0x12]
add esp, 0x10
test cl, cl
je 0x431765
cmp ebp, edi
jge 0x431765
mov dword [esp + 0x10], 0
mov ecx, dword [esp + 0x48]
mov al, byte [ecx + ebp]
cmp al, 0xff
je 0x431702
movzx edx, al
mov eax, dword [esp + edx*4 + 0xa8]
mov ecx, dword [eax + 0x4c]
cmp ecx, dword [ebx + 0x4c]
je 0x431753
movzx eax, byte [ebx + 2]
dec eax
mov esi, dword [esp + 0x10]
js 0x431728
lea ecx, [ebx + eax*8 + 0x18]
movzx edx, word [ecx + 4]
cmp edx, esi
jg 0x431720
je 0x4317b5
dec esi
dec eax
sub ecx, 8
test eax, eax
jge 0x431711
movzx edx, word [ebx + 0xe]
mov eax, dword [ebx + 0x44]
add edx, eax
movzx ecx, byte [edx + esi*2 + 1]
mov ch, byte [edx + esi*2]
lea esi, [edx + esi*2]
add eax, ecx
mov edi, ebx
call fcn.0042ea10
mov esi, eax
test esi, esi
jne 0x431a60
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + esi*4 + 0x74]
inc ebp
inc ecx
cmp ebp, eax
mov dword [esp + 0x10], ecx
jl 0x4316e5
mov edx, dword [esp + 0x30]
mov ebp, dword [esp + esi*4 + 0x74]
dec edx
cmp esi, edx
jge 0x43194e
cmp ebp, dword [esp + 0x3c]
jge 0x43194e
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
mov edi, dword [eax + ebp*4]
mov edx, dword [esp + 0x34]
mov eax, dword [ecx + ebp*4]
lea ecx, [eax + edx]
mov dl, byte [ebx + 4]
test dl, dl
mov dword [esp + 0x10], ecx
jne 0x4317b9
mov eax, dword [ebx + 0x44]
mov edx, dword [edi]
mov dword [eax + 8], edx
mov dword [esp + 0x10], 0
jmp 0x43185f
mov eax, dword [ecx]
jmp 0x43173e
mov edx, dword [esp + 0x44]
test edx, edx
je 0x431826
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + ebp*4 - 4]
dec ebp
push ecx
push ebx
lea esi, [esp + 0xc8]
call fcn.00411c20
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x2c]
push 0
push 0
lea edi, [edx + eax]
mov edx, dword [esp + 0xe0]
mov eax, dword [esp + 0xdc]
push 0
push edx
push eax
push 0
push edi
push ecx
call fcn.00430620
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x6c]
add esp, 0x2c
add eax, ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x10], 0
jmp 0x43185f
mov edx, dword [esp + 0x40]
mov esi, dword [esp + 0x50]
add esi, edx
add edx, ecx
sub edi, 4
cmp eax, 4
mov dword [esp + 0x10], esi
mov dword [esp + 0x40], edx
jne 0x43185f
mov edx, dword [esp + 0x20]
push edi
push edx
lea esi, [esp + 0xe8]
call fcn.00411c20
movzx ecx, word [esp + 0x106]
add esp, 8
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
push 4
push edi
push eax
mov eax, dword [esp + 0x1c]
call fcn.00430a70
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x431a60
mov edi, dword [esp + 0x20]
movzx eax, byte [edi + 2]
dec eax
mov esi, dword [esp + 0x28]
js 0x4318ab
lea ecx, [edi + eax*8 + 0x18]
movzx edx, word [ecx + 4]
cmp edx, esi
jg 0x4318a3
je 0x4319c7
dec esi
dec eax
sub ecx, 8
test eax, eax
jge 0x431894
movzx ecx, word [edi + 0xe]
mov eax, dword [edi + 0x44]
add ecx, eax
movzx edx, byte [ecx + esi*2 + 1]
mov dh, byte [ecx + esi*2]
lea esi, [ecx + esi*2]
add eax, edx
mov ebx, dword [ebx + 0x4c]
mov ecx, ebx
shr ecx, 0x18
mov byte [eax], cl
mov edx, ebx
shr edx, 0x10
mov ecx, ebx
mov byte [eax + 1], dl
mov edx, dword [esp + 0x24]
shr ecx, 8
mov byte [eax + 2], cl
mov byte [eax + 3], bl
mov al, byte [edx + 0x12]
test al, al
je 0x431940
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x431940
movzx eax, byte [edi + 2]
dec eax
mov esi, dword [esp + 0x28]
js 0x431917
lea ecx, [edi + eax*8 + 0x18]
movzx edx, word [ecx + 4]
cmp edx, esi
jg 0x43190f
je 0x4319ce
dec esi
dec eax
sub ecx, 8
test eax, eax
jge 0x431900
movzx ecx, word [edi + 0xe]
mov eax, dword [edi + 0x44]
add ecx, eax
movzx edx, byte [ecx + esi*2 + 1]
mov dh, byte [ecx + esi*2]
lea ecx, [ecx + esi*2]
add eax, edx
mov edi, dword [esp + 0x20]
call fcn.0042ea10
mov esi, eax
test esi, esi
jne 0x431a60
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x1c]
inc ebp
inc eax
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x30]
inc esi
cmp esi, eax
mov dword [esp + 0x1c], esi
jl 0x4316a0
mov ebx, eax
test byte [esp + 0x38], 8
jne 0x431983
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + eax*4 + 0xa4]
mov edx, dword [ecx + 0x44]
mov eax, dword [esp + ebx*4 + 0x5c]
mov ecx, dword [eax + 0x44]
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov ebp, dword [esp + 0x20]
movzx eax, byte [ebp + 2]
movzx edx, word [ebp + 0x14]
mov ecx, dword [esp + 0x28]
add edx, eax
cmp ecx, edx
jne 0x4319d5
movzx ecx, byte [ebp + 8]
mov edx, dword [ebp + 0x44]
mov eax, dword [esp + ebx*4 + 0x84]
lea ecx, [ecx + edx + 8]
mov edx, eax
shr edx, 0x18
mov byte [ecx], dl
mov edx, eax
shr edx, 0x10
mov byte [ecx + 1], dl
mov edx, eax
shr edx, 8
mov byte [ecx + 2], dl
mov byte [ecx + 3], al
jmp 0x431a2d
mov eax, dword [ecx]
jmp 0x4318c1
mov eax, dword [ecx]
jmp 0x43192d
dec eax
js 0x4319f7
lea edx, [ebp + eax*8 + 0x18]
lea esp, [esp]
movzx esi, word [edx + 4]
cmp esi, ecx
jg 0x4319ef
je 0x431aca
dec ecx
dec eax
sub edx, 8
test eax, eax
jge 0x4319e0
movzx edx, word [ebp + 0xe]
mov eax, dword [ebp + 0x44]
add edx, eax
lea ecx, [edx + ecx*2]
xor edx, edx
mov dh, byte [ecx]
mov dl, byte [ecx + 1]
add eax, edx
mov ecx, dword [esp + ebx*4 + 0x84]
mov edx, ecx
shr edx, 0x18
mov byte [eax], dl
mov edx, ecx
shr edx, 0x10
mov byte [eax + 1], dl
mov edx, ecx
shr edx, 8
mov byte [eax + 2], dl
mov byte [eax + 3], cl
xor edi, edi
test ebx, ebx
jle 0x431a47
mov esi, dword [esp + edi*4 + 0x60]
call fcn.004309b0
mov esi, eax
test esi, esi
jne 0x431a60
inc edi
cmp edi, ebx
jl 0x431a33
mov esi, ebp
call fcn.004309b0
mov esi, eax
test esi, esi
jne 0x431a60
push eax
push ebp
call fcn.00431ef0
add esp, 8
mov esi, eax
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.MSVCR71.dll_free]
mov ebp, dword [esp + 0x24]
add esp, 4
mov ebx, dword [esp + 0x14]
xor edi, edi
test ebx, ebx
jle 0x431a95
lea esp, [esp]
mov eax, dword [esp + edi*4 + 0x54]
test eax, eax
je 0x431a90
mov eax, dword [eax + 0x48]
call fcn.00427b20
inc edi
cmp edi, ebx
jl 0x431a80
mov ebx, dword [esp + 0x30]
xor edi, edi
test ebx, ebx
jle 0x431ab5
nop
mov eax, dword [esp + edi*4 + 0x60]
test eax, eax
je 0x431ab0
mov eax, dword [eax + 0x48]
call fcn.00427b20
inc edi
cmp edi, ebx
jl 0x431aa0
mov eax, dword [ebp + 0x48]
call fcn.00427b20
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf0
ret
mov eax, dword [edx]
jmp 0x431a0c