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

Disassembly:
sub esp, 0x70
xor eax, eax
mov dword [esp + 0x28], eax
push ebx
mov dword [esp + 0x38], eax
push esi
mov dword [esp + 0x64], eax
push edi
mov byte [esp + 0xf], al
push ebp
cmp dword [esp + 0x8c], eax
je 0x4b283b
mov ecx, dword [esp + 0x8c]
mov dword [ecx], eax
mov esi, dword [esp + 0x84]
push esi
call fcn.004b2220
add esp, 4
test ax, ax
jne 0x4b371e
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0x4b371e
mov eax, dword [esi + 0x70]
mov dword [esp + 0x48], eax
mov edx, dword [eax]
mov ebx, dword [eax + 4]
mov dword [esp + 0x78], edx
mov edx, dword [eax + 8]
add eax, 0x22
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x70], edx
mov ebx, dword [eax - 0x16]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x74], ebx
test esi, esi
je 0x4b289f
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4b289f
mov edx, dword [eax + 0x2c]
jmp 0x4b28a1
xor edx, edx
lea eax, [esp + 0x28]
push 0
push ecx
push eax
push edx
push esi
call fcn.004aec90
add esp, 0x14
test byte [esp + 0x34], 1
je 0x4b28cd
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
xor edx, edx
mov dl, byte [eax + ecx]
mov dword [esp + 0x14], edx
jmp 0x4b291a
test byte [esp + 0x34], 2
je 0x4b28f2
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
cmp word [eax + ecx], 1
mov eax, 0
adc eax, 0xffffffff
and eax, 2
mov dword [esp + 0x14], eax
jmp 0x4b291a
test esi, esi
je 0x4b2905
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4b2905
mov ecx, dword [eax + 0x2c]
jmp 0x4b2907
xor ecx, ecx
lea eax, [esp + 0x14]
lea edx, [esp + 0x28]
push eax
push edx
push ecx
call fcn.004ae290
add esp, 0xc
cmp byte [esp + 0x90], 0
jne 0x4b2932
cmp dword [esp + 0x14], 0x3c
je 0x4b2932
mov byte [esp + 0x12], 0
jmp 0x4b2937
mov byte [esp + 0x12], 1
mov ebp, 2
test byte [esp + 0x34], 1
je 0x4b295c
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
xor ecx, ecx
mov cl, byte [eax + edx]
mov dword [esp + 0x14], ecx
cmp ecx, 1
sbb eax, eax
inc eax
jmp 0x4b29ab
test word [esp + 0x34], bp
je 0x4b2980
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
cmp word [eax + ecx], 1
mov eax, 0
adc eax, 0xffffffff
and eax, ebp
mov dword [esp + 0x14], eax
jmp 0x4b29ab
test esi, esi
je 0x4b2993
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4b2993
mov ecx, dword [eax + 0x2c]
jmp 0x4b2995
xor ecx, ecx
lea eax, [esp + 0x14]
lea edx, [esp + 0x28]
push eax
push edx
push ecx
call fcn.004ae290
movsx eax, ax
add esp, 0xc
test eax, eax
je 0x4b362a
mov eax, 0
test esi, esi
je 0x4b29c2
mov eax, dword [esi + 0xac]
mov ecx, dword [esp + 0x14]
push ecx
push eax
call fcn.004ad0a0
add esp, 8
test al, 8
jne 0x4b35a4
cmp dword [esp + 0x14], 0x2d
je 0x4b35a4
cmp dword [esp + 0x14], 0x2f
je 0x4b35a4
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
lea edx, [esp + 0x28]
lea ecx, [esp + 0x18]
mov dword [esp + 0x40], 0
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + 0xc]
mov dword [ecx + 4], ebx
xor ebx, ebx
mov dword [ecx + 8], edi
mov edi, 1
mov dword [ecx + 0xc], eax
test word [esp + 0x24], di
je 0x4b2a3c
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
xor eax, eax
mov al, byte [ecx + edx]
mov dword [esp + 0x14], eax
cmp eax, edi
sbb eax, eax
inc eax
jmp 0x4b2a8a
test word [esp + 0x24], bp
je 0x4b2a5f
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp word [eax + ecx], di
mov eax, 0
adc eax, 0xffffffff
and eax, ebp
mov dword [esp + 0x14], eax
jmp 0x4b2a8a
test esi, esi
je 0x4b2a72
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4b2a72
mov ecx, dword [eax + 0x2c]
jmp 0x4b2a74
xor ecx, ecx
lea eax, [esp + 0x14]
lea edx, [esp + 0x18]
push eax
push edx
push ecx
call fcn.004ae290
movsx eax, ax
add esp, 0xc
test eax, eax
je 0x4b2d06
mov eax, 0
test esi, esi
je 0x4b2aa1
mov eax, dword [esi + 0xac]
mov ecx, dword [esp + 0x14]
push ecx
push eax
call fcn.004ad0a0
add esp, 8
test al, 8
jne 0x4b2d06
cmp dword [esp + 0x14], 0x2d
je 0x4b2b59
cmp dword [esp + 0x14], 0x2f
je 0x4b2b59
cmp dword [esp + 0x14], 0x3e
je 0x4b2b59
test word [esp + 0x24], di
je 0x4b2b01
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
xor eax, eax
mov al, byte [ecx + edx]
mov dword [esp + 0x14], eax
cmp eax, ebx
je 0x4b2a1d
inc dword [esp + 0x1c]
jmp 0x4b2a1d
test word [esp + 0x24], bp
je 0x4b2b2c
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp word [eax + ecx], bx
je 0x4b2b23
add dword [esp + 0x1c], ebp
mov dword [esp + 0x14], ebp
jmp 0x4b2a1d
mov dword [esp + 0x14], ebx
jmp 0x4b2a1d
test esi, esi
je 0x4b2b3f
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4b2b3f
mov ecx, dword [eax + 0x2c]
jmp 0x4b2b41
xor ecx, ecx
lea eax, [esp + 0x14]
lea edx, [esp + 0x18]
push eax
push edx
push ecx
call fcn.004ae200
add esp, 0xc
jmp 0x4b2a1d
test word [esp + 0x34], di
mov dword [esp + 0x40], edi
je 0x4b2b77
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
xor eax, eax
mov al, byte [ecx + edx]
mov dword [esp + 0x14], eax
jmp 0x4b2bc2
test word [esp + 0x34], bp
je 0x4b2b9a
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
cmp word [ecx + eax], di
mov eax, 0
adc eax, 0xffffffff
and eax, ebp
mov dword [esp + 0x14], eax
jmp 0x4b2bc2
test esi, esi
je 0x4b2bad
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4b2bad
mov ecx, dword [eax + 0x2c]
jmp 0x4b2baf
xor ecx, ecx
lea eax, [esp + 0x14]
lea edx, [esp + 0x28]
push eax
push edx
push ecx
call fcn.004ae290
add esp, 0xc
cmp dword [esp + 0x14], 0x3c
je 0x4b2c92
cmp dword [esp + 0x14], 0x3e
jne 0x4b2d06
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x18], eax
jne 0x4b2c00
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x1c], eax
jb 0x4b2bf6
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x2c]
jmp 0x4b2c05
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0x1c]
jmp 0x4b2c05
mov eax, 0xffffffff
test eax, eax
jne 0x4b2d06
test word [esp + 0x24], di
mov dword [esp + 0x40], ebx
je 0x4b2c3a
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
xor eax, eax
mov al, byte [ecx + edx]
mov dword [esp + 0x14], eax
cmp eax, ebx
je 0x4b2a1d
inc dword [esp + 0x1c]
jmp 0x4b2a1d
test word [esp + 0x24], bp
je 0x4b2c65
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp word [eax + ecx], bx
je 0x4b2c5c
add dword [esp + 0x1c], ebp
mov dword [esp + 0x14], ebp
jmp 0x4b2a1d
mov dword [esp + 0x14], ebx
jmp 0x4b2a1d
test esi, esi
je 0x4b2c78
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4b2c78
mov ecx, dword [eax + 0x2c]
jmp 0x4b2c7a
xor ecx, ecx
lea eax, [esp + 0x14]
lea edx, [esp + 0x18]
push eax
push edx
push ecx
call fcn.004ae200
add esp, 0xc
jmp 0x4b2a1d
test byte [esp + 0x34], 1
je 0x4b2cb4
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
xor ecx, ecx
mov cl, byte [eax + edx]
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x4b2d06
inc dword [esp + 0x2c]
jmp 0x4b2d06
test word [esp + 0x34], bp
je 0x4b2cde
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
cmp word [eax + ecx], 0
je 0x4b2cd4
add dword [esp + 0x2c], ebp
mov dword [esp + 0x14], ebp
jmp 0x4b2d06
mov dword [esp + 0x14], 0
jmp 0x4b2d06
test esi, esi
je 0x4b2cf1
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4b2cf1
mov ecx, dword [eax + 0x2c]
jmp 0x4b2cf3
xor ecx, ecx
lea eax, [esp + 0x14]
lea edx, [esp + 0x28]
push eax
push edx
push ecx
call fcn.004ae200
add esp, 0xc
cmp byte [esp + 0x90], 0
je 0x4b2e04
test byte [esp + 0x34], 1
je 0x4b2d2e
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
xor ecx, ecx
mov cl, byte [eax + edx]
mov dword [esp + 0x14], ecx
jmp 0x4b2d7a
test word [esp + 0x34], bp
je 0x4b2d52
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
cmp word [ecx + eax], 1
mov eax, 0
adc eax, 0xffffffff
and eax, ebp
mov dword [esp + 0x14], eax
jmp 0x4b2d7a
test esi, esi
je 0x4b2d65
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4b2d65
mov ecx, dword [eax + 0x2c]
jmp 0x4b2d67
xor ecx, ecx
lea eax, [esp + 0x14]
lea edx, [esp + 0x28]
push eax
push edx
push ecx
call fcn.004ae290
add esp, 0xc
mov eax, dword [esp + 0x14]
sub eax, 0x23
cmp eax, 1
sbb al, al
neg al
mov byte [esp + 0x13], al
cmp al, 1
jne 0x4b2e04
test byte [esp + 0x34], 1
je 0x4b2db2
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
xor ecx, ecx
mov cl, byte [edx + eax]
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x4b2e04
inc dword [esp + 0x2c]
jmp 0x4b2e04
test word [esp + 0x34], bp
je 0x4b2ddc
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
cmp word [eax + ecx], 0
je 0x4b2dd2
add dword [esp + 0x2c], ebp
mov dword [esp + 0x14], ebp
jmp 0x4b2e04
mov dword [esp + 0x14], 0
jmp 0x4b2e04
test esi, esi
je 0x4b2def
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4b2def
mov ecx, dword [eax + 0x2c]
jmp 0x4b2df1
xor ecx, ecx
lea eax, [esp + 0x14]
lea edx, [esp + 0x28]
push eax
push edx
push ecx
call fcn.004ae200
add esp, 0xc
test esi, esi
je 0x4b2e17
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4b2e17
mov ecx, dword [eax + 0x2c]
jmp 0x4b2e19
xor ecx, ecx
mov eax, dword [esp + 0x3c]
push 0x100
lea edx, [esp + 0x1c]
push eax
lea ebx, [esp + 0x30]
push edx
push ebx
push ecx
push esi
call fcn.004af030
add esp, 0x18
test esi, esi
je 0x4b2e4a
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4b2e4a
mov ecx, dword [eax + 0x2c]
jmp 0x4b2e4c
xor ecx, ecx
mov eax, dword [esp + 0x3c]
push eax
push ecx
call fcn.004addd0
mov dword [esp + 0x58], eax
add esp, 8
cmp byte [esp + 0x13], 0
jne 0x4b2efa
xor ebx, ebx
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x64], ecx
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x68]
mov ecx, dword [eax]
test ecx, ecx
jne 0x4b2e93
mov ecx, dword [edi]
mov eax, dword [esp + 0x64]
mov eax, dword [eax]
test eax, eax
jne 0x4b2ea3
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
test ecx, ecx
je 0x4b2ed0
cmp dword [esp + 0x50], eax
jne 0x4b2ed0
mov edx, 0
test esi, esi
je 0x4b2ebc
mov edx, dword [esi + 0xac]
mov eax, dword [esp + 0x3c]
push ecx
push eax
push edx
call fcn.004ac2e0
add esp, 0xc
test ax, ax
je 0x4b2f2d
add edi, 4
inc ebx
add dword [esp + 0x4c], 4
add dword [esp + 0x64], 4
add dword [esp + 0x68], 4
cmp ebx, 0x37
jb 0x4b2e87
cmp byte [esp + 0x13], 0
jne 0x4b2efa
cmp byte [esp + 0x12], 0
je 0x4b3013
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x4c], 0x51e2c0
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x50]
mov ecx, dword [eax + 0x10]
cmp dword [ecx + edi], edx
jne 0x4b2ffe
test esi, esi
je 0x4b2fe2
mov ecx, dword [esi + 0xac]
jmp 0x4b2fe4
mov edi, dword [esp + 0x1c]
lea edx, [esp + 0x18]
lea ecx, [esp + 0x28]
mov eax, dword [edx]
cmp dword [esp + 0x40], 0
mov dword [ecx], eax
mov eax, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [ecx + 4], edi
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
je 0x4b356a
test byte [esp + 0x24], 1
je 0x4b2f83
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
xor eax, eax
mov al, byte [ecx + edx]
mov dword [esp + 0x14], eax
test eax, eax
je 0x4b356a
lea eax, [ecx + 1]
mov dword [esp + 0x2c], eax
jmp 0x4b356a
test word [esp + 0x24], bp
je 0x4b2fb5
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp word [eax + ecx], 0
je 0x4b2fa8
add eax, ebp
mov dword [esp + 0x14], ebp
mov dword [esp + 0x2c], eax
jmp 0x4b356a
mov dword [esp + 0x14], 0
jmp 0x4b356a
test esi, esi
je 0x4b2fc8
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4b2fc8
mov ecx, dword [eax + 0x2c]
jmp 0x4b2fca
xor ecx, ecx
lea eax, [esp + 0x14]
lea edx, [esp + 0x28]
push eax
push edx
push ecx
call fcn.004ae200
add esp, 0xc
jmp 0x4b356a
xor ecx, ecx
mov eax, dword [esp + 0x4c]
mov edx, dword [eax]
mov eax, dword [esp + 0x3c]
push edx
push eax
push ecx
call fcn.004ac2e0
add esp, 0xc
test ax, ax
je 0x4b305e
add edi, 4
inc ebx
add dword [esp + 0x4c], 0x18
cmp edi, 0xdc
jl 0x4b2f06
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
lea edx, [esp + 0x28]
lea ecx, [esp + 0x54]
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + 0xc]
mov dword [ecx + 4], ebx
mov dword [ecx + 8], edi
xor edi, edi
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x54], eax
jne 0x4b311d
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x58], eax
jb 0x4b3113
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x1c]
jmp 0x4b3122
mov edi, dword [esp + 0x1c]
lea edx, [esp + 0x18]
lea ecx, [esp + 0x28]
mov eax, dword [edx]
cmp dword [esp + 0x40], 0
mov dword [ecx], eax
mov eax, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [ecx + 4], edi
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
je 0x4b356a
test byte [esp + 0x24], 1
je 0x4b30b4
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
xor eax, eax
mov al, byte [ecx + edx]
mov dword [esp + 0x14], eax
test eax, eax
je 0x4b356a
lea eax, [ecx + 1]
mov dword [esp + 0x2c], eax
jmp 0x4b356a
test word [esp + 0x24], bp
je 0x4b30e6
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp word [eax + ecx], 0
je 0x4b30d9
add eax, ebp
mov dword [esp + 0x14], ebp
mov dword [esp + 0x2c], eax
jmp 0x4b356a
mov dword [esp + 0x14], 0
jmp 0x4b356a
test esi, esi
je 0x4b30f9
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4b30f9
mov ecx, dword [eax + 0x2c]
jmp 0x4b30fb
xor ecx, ecx
lea eax, [esp + 0x14]
lea edx, [esp + 0x28]
push eax
push edx
push ecx
call fcn.004ae200
add esp, 0xc
jmp 0x4b356a
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x58]
jmp 0x4b3122
mov eax, 0xffffffff
test eax, eax
je 0x4b31b6
test byte [esp + 0x60], 1
je 0x4b3155
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
xor eax, eax
mov al, byte [edx + ecx]
mov dword [esp + 0x14], eax
cmp eax, edi
je 0x4b3151
mov eax, 1
inc dword [esp + 0x58]
jmp 0x4b31ad
xor eax, eax
jmp 0x4b31ad
test word [esp + 0x60], bp
je 0x4b3182
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
cmp word [eax + ecx], di
je 0x4b3178
add dword [esp + 0x58], ebp
mov dword [esp + 0x14], ebp
mov eax, dword [esp + 0x14]
jmp 0x4b31ad
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x14]
jmp 0x4b31ad
test esi, esi
je 0x4b3195
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4b3195
mov ecx, dword [eax + 0x2c]
jmp 0x4b3197
xor ecx, ecx
lea eax, [esp + 0x14]
lea edx, [esp + 0x54]
push eax
push edx
push ecx
call fcn.004ae200
movsx eax, ax
add esp, 0xc
mov ebx, 1
test eax, eax
jne 0x4b31b8
xor ebx, ebx
test ebx, ebx
je 0x4b31e9
mov eax, 0
test esi, esi
je 0x4b31cb
mov eax, dword [esi + 0xac]
mov ecx, dword [esp + 0x14]
push ecx
push eax
call fcn.004ad0a0
add esp, 8
test al, 4
jne 0x4b3035
test ebx, ebx
jne 0x4b32ac
mov eax, dword [esp + 0x3c]
push eax
call fcn.004c0d90
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x2c]
mov dword [esp + 0x70], eax
add esp, 4
mov eax, dword [edx]
mov ebx, dword [edx + 4]
mov edi, dword [edx + 8]
mov dword [ecx], eax
mov eax, dword [edx + 0xc]
mov dword [ecx + 4], ebx
cmp dword [esp + 0x40], 0
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], eax
je 0x4b293c
test byte [esp + 0x24], 1
je 0x4b324d
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
xor ecx, ecx
mov cl, byte [eax + edx]
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x4b293c
inc eax
mov dword [esp + 0x2c], eax
jmp 0x4b293c
test word [esp + 0x24], bp
je 0x4b327f
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp word [eax + ecx], 0
je 0x4b3272
add eax, ebp
mov dword [esp + 0x14], ebp
mov dword [esp + 0x2c], eax
jmp 0x4b293c
mov dword [esp + 0x14], 0
jmp 0x4b293c
test esi, esi
je 0x4b3292
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4b3292
mov ecx, dword [eax + 0x2c]
jmp 0x4b3294
xor ecx, ecx
lea eax, [esp + 0x14]
lea edx, [esp + 0x28]
push eax
push edx
push ecx
call fcn.004ae200
add esp, 0xc
jmp 0x4b293c
cmp dword [esp + 0x50], ebp
jne 0x4b3397
test esi, esi
je 0x4b32c9
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4b32c9
mov ecx, dword [eax + 0x2c]
jmp 0x4b32cb
xor ecx, ecx
mov eax, dword [esp + 0x3c]
push 0x51e7e8
push eax
push ecx
call fcn.004ae9e0
add esp, 0xc
test ax, ax
je 0x4b3397
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
lea edx, [esp + 0x18]
lea ecx, [esp + 0x28]
cmp dword [esp + 0x40], 0
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + 0xc]
mov dword [ecx + 4], ebx
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], eax
je 0x4b3385
test byte [esp + 0x24], 1
je 0x4b3331
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
xor ecx, ecx
mov cl, byte [eax + edx]
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x4b3385
inc eax
mov dword [esp + 0x2c], eax
jmp 0x4b3385
test word [esp + 0x24], bp
je 0x4b335d
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp word [eax + ecx], 0
je 0x4b3353
add eax, ebp
mov dword [esp + 0x14], ebp
mov dword [esp + 0x2c], eax
jmp 0x4b3385
mov dword [esp + 0x14], 0
jmp 0x4b3385
test esi, esi
je 0x4b3370
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4b3370
mov ecx, dword [eax + 0x2c]
jmp 0x4b3372
xor ecx, ecx
lea eax, [esp + 0x14]
lea edx, [esp + 0x28]
push eax
push edx
push ecx
call fcn.004ae200
add esp, 0xc
or dword [esp + 0x38], 0x100
mov ebx, 0x17
jmp 0x4b356a
cmp dword [esp + 0x50], 6
jne 0x4b3491
mov ecx, 0
test esi, esi
je 0x4b33b1
mov ecx, dword [esi + 0xac]
mov eax, dword [esp + 0x3c]
push 0x51e800
push eax
push ecx
call fcn.004ac2e0
add esp, 0xc
test ax, ax
jne 0x4b3491
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
lea edx, [esp + 0x18]
lea ecx, [esp + 0x28]
cmp dword [esp + 0x40], 0
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + 0xc]
mov dword [ecx + 4], ebx
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], eax
je 0x4b3487
test byte [esp + 0x24], 1
je 0x4b3423
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
xor ecx, ecx
mov cl, byte [eax + edx]
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x4b3487
inc eax
mov ebx, 0x11
mov dword [esp + 0x2c], eax
jmp 0x4b356a
test word [esp + 0x24], bp
je 0x4b345f
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp word [eax + ecx], 0
je 0x4b344d
add eax, ebp
mov ebx, 0x11
mov dword [esp + 0x2c], eax
mov dword [esp + 0x14], ebp
jmp 0x4b356a
mov dword [esp + 0x14], 0
mov ebx, 0x11
jmp 0x4b356a
test esi, esi
je 0x4b3472
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4b3472
mov ecx, dword [eax + 0x2c]
jmp 0x4b3474
xor ecx, ecx
lea eax, [esp + 0x14]
lea edx, [esp + 0x28]
push eax
push edx
push ecx
call fcn.004ae200
add esp, 0xc
mov ebx, 0x11
jmp 0x4b356a
cmp dword [esp + 0x50], 9
jne 0x4b36e5
mov ecx, 0
test esi, esi
je 0x4b34ab
mov ecx, dword [esi + 0xac]
mov eax, dword [esp + 0x3c]
push str.Wordgroup
push eax
push ecx
call fcn.004ac2e0
add esp, 0xc
test ax, ax
jne 0x4b36e5
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x20]
lea edx, [esp + 0x18]
lea ecx, [esp + 0x28]
cmp dword [esp + 0x40], 0
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + 0xc]
mov dword [ecx + 4], ebx
mov dword [ecx + 8], edi
mov dword [ecx + 0xc], eax
je 0x4b3565
test byte [esp + 0x24], 1
je 0x4b3511
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
xor ecx, ecx
mov cl, byte [eax + edx]
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x4b3565
inc eax
mov dword [esp + 0x2c], eax
jmp 0x4b3565
test word [esp + 0x24], bp
je 0x4b353d
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
cmp word [eax + ecx], 0
je 0x4b3533
add eax, ebp
mov dword [esp + 0x14], ebp
mov dword [esp + 0x2c], eax
jmp 0x4b3565
mov dword [esp + 0x14], 0
jmp 0x4b3565
test esi, esi
je 0x4b3550
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4b3550
mov ecx, dword [eax + 0x2c]
jmp 0x4b3552
xor ecx, ecx
lea eax, [esp + 0x14]
lea edx, [esp + 0x28]
push eax
push edx
push ecx
call fcn.004ae200
add esp, 0xc
mov ebx, 0xf
lea eax, [ebx + ebx*2]
mov ax, word [eax*8 + 0x51e2d0]
test ax, ax
je 0x4b3590
movsx eax, ax
test dword [esp + 0x38], eax
jne 0x4b36e5
or dword [esp + 0x38], eax
jmp 0x4b293c
cmp dword [esp + 0x44], 0
jne 0x4b36e5
mov dword [esp + 0x44], ebx
jmp 0x4b293c
test byte [esp + 0x34], 1
je 0x4b35cd
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
xor ecx, ecx
mov cl, byte [edx + eax]
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x4b293c
inc dword [esp + 0x2c]
jmp 0x4b293c
test word [esp + 0x34], bp
je 0x4b35fd
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
cmp word [eax + ecx], 0
je 0x4b35f0
add dword [esp + 0x2c], ebp
mov dword [esp + 0x14], ebp
jmp 0x4b293c
mov dword [esp + 0x14], 0
jmp 0x4b293c
test esi, esi
je 0x4b3610
mov eax, dword [esi + 0xac]
test eax, eax
je 0x4b3610
mov ecx, dword [eax + 0x2c]
jmp 0x4b3612
xor ecx, ecx
lea eax, [esp + 0x14]
lea edx, [esp + 0x28]
push eax
push edx
push ecx
call fcn.004ae200
add esp, 0xc
jmp 0x4b293c
cmp dword [esp + 0x44], 0
jne 0x4b3687
mov eax, dword [esp + 0x38]
cmp eax, 0x200
jg 0x4b364a
je 0x4b366b
cmp eax, 0x100
je 0x4b3664
jmp 0x4b36e5
cmp eax, 0x400
je 0x4b3672
cmp eax, 0x800
je 0x4b3679
cmp eax, 0x1000
je 0x4b3680
jmp 0x4b36e5
mov eax, 2
jmp 0x4b36e7
mov eax, 3
jmp 0x4b36e7
mov eax, 4
jmp 0x4b36e7
mov eax, 0x2c
jmp 0x4b36e7
mov eax, 0x31
jmp 0x4b36e7
cmp dword [esp + 0x44], 0x28
jne 0x4b36a5
cmp dword [esp + 0x8c], 0
je 0x4b36a5
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x8c]
mov dword [ecx], eax
mov eax, dword [esp + 0x44]
lea ecx, [eax + eax*2]
movsx eax, word [ecx*8 + 0x51e2ce]
and eax, dword [esp + 0x38]
cmp eax, dword [esp + 0x38]
jne 0x4b36c8
mov eax, dword [esp + 0x44]
or eax, dword [esp + 0x38]
jmp 0x4b36e7
cmp dword [esp + 0x44], 0x13
jne 0x4b36e5
test byte [esp + 0x39], 2
je 0x4b36e5
mov eax, dword [esp + 0x38]
and eax, 0xfffffdff
or eax, dword [esp + 0x44]
jmp 0x4b36e7
xor eax, eax
lea ecx, [esp + 0x28]
xor edx, edx
mov dword [ecx], edx
mov dword [ecx + 4], edx
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], edx
lea ecx, [esp + 0x18]
mov dword [ecx], edx
mov dword [ecx + 4], edx
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], edx
lea ecx, [esp + 0x54]
pop ebp
pop edi
pop esi
mov dword [ecx], edx
pop ebx
mov dword [ecx + 4], edx
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], edx
add esp, 0x70
ret
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x70
ret